Przyklejanie okna

Shider

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 komentarzy

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

w sumie banalne, ale dobre :)

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 :)