-
ПРивет. Как осуществить snap-to-screen в KOL? Есть какие-то штатные средства для этого? Если нет, то как сделать?
-
... SizeSnap : Integer; // С какой позиции прилипать ... SizeSnap := 10; ... function TForm1.KOLFormMessage(var Msg : tagMSG; var Rslt : Integer) : Boolean; var WorkArea : TRect; WinPos : PWindowPos; begin Result := False;
with Msg do if message = WM_WINDOWPOSCHANGING then begin SystemParametersInfo(SPI_GETWORKAREA, 0, @WorkArea, 0); WinPos := PWindowPos(lParam);
with WorkArea, WinPos^ do begin Dec(Right, cx); Dec(Bottom, cy);
if Abs(Left - x) <= SizeSnap then x := Left; if Abs(Right - x) <= SizeSnap then x := Right; if Abs(Top - y) <= SizeSnap then y := Top; if Abs(Bottom - y) <= SizeSnap then y := Bottom; end; end; end;
-
Спасибо!
|