![]() |
|
|
#1
|
|||
|
|||
![]() Всем привет =) Короче, вот я решил сделать прогу, и срочно надо сделать плавающее окошко, так как программа без него уже не программа. Долго думал как реализовать это окошко, на так и недоходит. Подскажите как его можно реализовать =)
Если кто непонял, то я говорю о плавающем окошке, подобно как в программах qip, ICQ, Download Master и .т.д. Заранее спасиб =) |
#2
|
||||
|
||||
![]() Сделай форму с BorderStyle = bsNone
|
#3
|
|||
|
|||
![]() Неочень получится, я видел компоненты, при помощи которых организовываются плавоющие окошки, но эти компоненты планые и без инходников =( Подскажите, как можно создать окно программно (при помощи кода)...
|
#4
|
||||
|
||||
![]() Код:
var xx,yy:integer; bool:boolean; ... procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin bool:=true; xx:=x; yy:=y; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if bool then begin form1.left:=form1.left+x-xx; form1.top:=form1.top+y-yy; end; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin bool:=false; end; Теперь на том объекте, с помощью которого ты собираешься перетаскивать окно, в Events сделай так: MouseDown=FormMouseDown MouseMove=FormMouseMove MouseUp=FormMouseUp И всё, теперь запускай прогу и перетаскуй себе на здоровье. Кому я должен - всем прощаю!!!! ![]() Последний раз редактировалось <<D>>, 19.07.2007 в 19:40. |
#5
|
|||
|
|||
![]() <<D>> я тоже так раньше делал, но лучше вот так
procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const SC_DragMove = $F012; { магический номер } begin ReleaseCapture; perform(WM_SysCommand, SC_DragMove, 0); end; |
#6
|
||||
|
||||
![]() Можно без констант, сразу вот так:
Код:
procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; perform(WM_SysCommand, $F012 {тот же магический номер}, 0); end; |