Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Как перемещать форму удерживая за любое свободное на ней место?   Найти похожие ветки 

 
DimaLos ©   (2004-03-15 10:08) [0]

Подскажите как перемещать форму удерживая за любое свободное на ней место?


 
Serge ©   (2004-03-15 10:10) [1]

Пиши процедуру по обработке WM_NCHITTEST


 
DimaLos ©   (2004-03-15 10:12) [2]

Пожалуйста, можно подробнее?


 
ssk   (2004-03-15 10:17) [3]

procedure Form1.OnMouseMove(...);
begin
if ssleft in shift then
  begin
    ReleaseCapture;
    Form1.perform(WM_syscommand, $F012, 0);
  end;
end;


 
serge ©   (2004-03-15 10:22) [4]

Либо

procedure WMNCHITTEST (var Msg : TWMNCHit); message WM_NCHITTEST;
...
procedure TForm1.WMNCHITTEST (var Msg : TWMNCHit);
Begin
inherited;
With Msg do
begin
if Msg.Result = htClient then
result:=htCaption;
end;
End;

Код писал на память, если что не так - старею значит :)
Удачи.


 
serge ©   (2004-03-15 10:25) [5]

var Msg : TWMNCHit --> var Msg: TWMNCHitTest


 
DimaLos ©   (2004-03-15 11:21) [6]

Огромное спасибо!


 
$tranger ©   (2004-03-15 14:11) [7]

Можно еще и так:
procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
 SC_DragMove = $F012;
 begin
 ReleaseCapture;
 Form1.perform(WM_SysCommand, SC_DragMove, 0);
end;


 
$tranger ©   (2004-03-15 14:13) [8]

Можно еще и так:
procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
 SC_DragMove = $F012;
 begin
 ReleaseCapture;
 Form1.perform(WM_SysCommand, SC_DragMove, 0);
end;


 
dr Tr0jan ©   (2004-03-15 14:14) [9]

Еще один способ есть. Механизм работы такой же.
var
 xm,ym:integer;

...

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if (ssleft in shift) then begin
   left:=left+(x-xm);
   top:=top+(y-ym);
 end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 xm:=x;
 ym:=y;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.065 c
1-1079078884
Erik
2004-03-12 11:08
2004.04.04
Тонкости обработки потоков в моделях tmFree и tmApartment


1-1079628224
pasha
2004-03-18 19:43
2004.04.04
Быстрое сохранение значений шрифта


1-1079338277
alex732
2004-03-15 11:11
2004.04.04
Точка остановки


9-1063677697
Кен
2003-09-16 06:01
2004.04.04
Программа на glscene под WindowsXP сильно тормозит. Какие нужно


14-1078767251
YurikGl
2004-03-08 20:34
2004.04.04
Глюки Винампа