Jokerjar79
![](http://forum.ru-board.com/board/avatars/private/Jokerjar79.gif)
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору DmitryKz, немного корявое решение: Код: private procedure WMWindowPosChanging(var Msg: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING; ... procedure TChildForm.WMWindowPosChanging(var Msg: TWMWindowPosChanging); var WorkArea: TRect; StickAt : Word; begin StickAt := 10; WorkArea := ParentForm.ClientRect; with WorkArea, Msg.WindowPos^ do begin Right:=Right-cx; Bottom:=Bottom-cy; if (abs(Left - x) <= StickAt) or (x < Left) then x := Left; if (abs(Right - x) <= StickAt) or (x > Right) then x := Right - 4; if (abs(Top - y) <= StickAt) or (y < Top) then y := Top; if (abs(Bottom - y) <= StickAt) or (y > Bottom) then y := Bottom - 4; end; inherited; end; | ParentForm.ClientRect, как я понял, захватывает также и бордюр формы, поэтому пришлось добавить - 4, возможно, придется подогнать под определенный стиль формы
---------- www.MyFirstSite.ru - информационный ресурс для начинающих веб-мастеров |
|