Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пристыковка к краям экрана


Ask_For_Help ©   (2007-11-01 00:01:00) 

ПРивет. Как осуществить snap-to-screen в KOL? Есть какие-то штатные средства для этого? Если нет, то как сделать?


Ask_For_Help   (2007-11-01 09:40:00) [1]

Спасибо!


Elec3C   (2007-11-01 00:22:00) [2]

...
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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо