Конференция "KOL" » Пристыковка к краям экрана
 
  • Ask_For_Help (01.11.07 00:01) [0]
    ПРивет. Как осуществить snap-to-screen в KOL? Есть какие-то штатные средства для этого? Если нет, то как сделать?
  • Elec3C © (01.11.07 00:22) [1]
    ...
    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;
  • Ask_For_Help (01.11.07 09:40) [2]
    Спасибо!
 
Конференция "KOL" » Пристыковка к краям экрана
Есть новые Нет новых   [134431   +10][b:0][p:0]