Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перетаскивание окна за любою его часть мышкой


volph ©   (2003-03-29 22:46:00) 

Перетаскивание окна за любою его часть мышкой, как так сделать?


Shaman_Naydak   (2003-03-31 19:03:00) [1]

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
private
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
if Message.Result = HTCLIENT then
Message.Result:=HTCAPTION;
end;


Intell   (2003-03-31 15:27:00) [2]

Есть ограничение в примере BorisUK, некоторые компоненты на форме не будут работать, если подобное случится, то помести компонент на TPanel. Тогда всё будет полный OK.


BorisUK   (2003-03-31 13:54:00) [3]


procedure TSelectDoc_f.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
ReleaseCapture;
Perform(WM_SysCommand, SC_DragMove, 0);
end;


BuildeRR   (2003-03-31 13:07:00) [4]

2Flint: Напиши пожалуста примерчик


Flint   (2003-03-31 08:55:00) [5]

перехватывай WM_NCHITTEST и делай что хочешь :)
Это гораздо мощнее и правильней чем пример данный Palladin"ом :)


Intell   (2003-03-30 14:24:00) [6]

var
MX: integer;
MY: integer;

procedure TForm1.form1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Shift<>[ssLeft] then
begin
MX:=X;
MY:=Y;
end else
begin
Left:=Left+X-MX;
Top:=Top+Y-MY;
end;
end;


X-RayMan   (2003-03-30 12:14:00) [7]

Есть несколько методов, один из них: в OnMouseDown формы написать:
if Button=mbLeft then
Form1.BeginDrag(True);


Есть там еще методы, но я сразу и не вспомню.


Palladin   (2003-03-29 22:52:00) [8]

http://delphi.mastak.com/cgi-bin/faq.pl?look=1&id=988619881&n=16


Наверх

Титульная страница Поиск, карта сайта Написать письмо