Programowanie w języku Delphi » FAQ

Przyklejanie okna

  • 2006-06-30 23:36
  • 4 komentarze
  • 476 odsłon
  • Oceń ten tekst jako pierwszy
W sekcji private dodajemy:

procedure WndPosChanging(var Msg : TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;

A w kodzie formy umieszczamy procedurę:

procedure T(nazwa_formy).WndPosChanging(var Msg: TWMWINDOWPOSCHANGING);
begin
  if Msg.WindowPos.x < (Screen.WorkAreaLeft + 15) then 
    Msg.WindowPos.X := Screen.WorkAreaLeft;
 
  if Msg.WindowPos.y < (Screen.WorkAreaTop + 15) then 
    Msg.WindowPos.Y := Screen.WorkAreaTop;
 
  if Msg.WindowPos.y > (Screen.WorkAreaHeight - Height - 15) then 
    Msg.WindowPos.y := Screen.WorkAreaHeight - Height;
 
  if Msg.WindowPos.x > (Screen.WorkAreaWidth - Width - 15) then 
    Msg.WindowPos.x := Screen.WorkAreaWidth - Width;
end;

Kod oparty na wersji Adama Boducha.

4 komentarze

Rafał D 2014-10-02 22:37

Kod należało by przerobić jeśli ktoś pracuje na 2 pulpitach bo nie można przenieść okna na drugi monitor (pulpit)

czarownik 2004-02-02 12:33

w sumie banalne, ale dobre :)

KiteK 2003-11-21 17:12

Zróbcie przyklejanie okna do boków ekranu, każdej z form tego programu (bo do każdej z form w Windzie to zbyt trudno :P ). Nie takie aż trudne, próbowałem i zrobiłem, a efekt super :)