А теперь ближе к теме выпуска. Хочу предложить вам программу, которая копирует файлы на дискету. А работать это будет так: вы «бросаете» на окно программы файл, нажимаете кнопку копировать, и файл копируется на дискету.
Я хочу сделать нестандартное окно программы. У этого окна не будет заголовка, и его можно будет таскать за любую часть.
У становите свойство BorderStyleформы в bsNone. В свойстве Colorвыставите какой-нибудь цвет, например clYellow, Такой же цвет поставьте в свойстве TransparentColorValue. В свойстве TransparentColorпоставьте true, тем самым разрешив использование
прозрачности.
Если не ошибаюсь, то данное свойство работает начиная с ОС Windows 2000.
Если вы сейчас запустите программу, то вы увидите, … ничего вы не увидите.
Сейчас мы это исправим. Поместите на форму компонент Shape, в свойстве alignпоставьте alClient. Эта фигура будет играть роль главного окна приложения. Раскрасьте фигуру как вам понравится, в свойстве shapeвыберите фигуре свойство stRoundRect – прямоугольник со скруглёнными краями. Теперь разместите на
компоненте shape1 лейбл с именем NameLabel (этот лэйбл будет показывать пользователю имя файла). Ниже разместите кнопки Button1 (Копировать на дискету) и Button2 (Отформатировать дискету). В правом верхнем углуразместите маленькую кнопку с заголовком ‘X’. Это будет кнопка выхода из приложения. С интерфейсом вроде бы разобрались, приступим к коду.
//Говорим Windows, что прога поддерживает Drag-Drop
DragAcceptFiles(Handle, True);
//Эта длинная строчка убирает форму из TaskBar
SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
//Задаём расположение окна проги в правом верхнем правом углу экрана
Form1.Left:=Screen.width-form1.Width-5;
Form1.Top:=5;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, False);
end;
Поцедура WMDropFiles обрабатывает событие Drag-Drom формы и запоминает в переменной filepath полный путь к файлу. Данная процедура работает только с одним файлом (если вы кинете на неё несколько файлов она «запомнит» только последний)