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

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

Изменение размера "липких" окон [D6, D7, Win2k, WinXP]


superedward ©   (2004-07-21 13:22:00) 

Есть ФАК по липких окошкам. Оч. хорошо. Они прекрасно лепятся. Однако возникает неприятный глюк при изменении размеров липкого окна: размер начинает меняться с другой, неперетаскиваемой стороны формы.
Я просто уже очень устал искать лекарство, можа кто делал нечто подобное?


superedward   (2004-07-22 07:09:00) [1]

Липкие окна - окна, которые при перемещении "прикрепляются" к краям десктопа (как WinAmp, например)

обрабатываю сообщение WM_WINDOWPOSCHANGING:
procedure TWindowCustom.WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING);
{процедура прилепления дочерних окон к краям десктопа}
begin
if WindowState=wsMaximized then begin
 inherited;
 exit;
end;
if(Abs(Msg.WindowPos^.Y-DesktopRect.Top)<WindowGlueConst)then begin//Up
   Msg.WindowPos^.Y:=DesktopRect.Top;
end;

if(Abs(Msg.WindowPos^.Y-(DesktopRect.Bottom-Msg.WindowPos^.CY))<WindowGlueConst)then begin//Down
   Msg.WindowPos^.Y:=DesktopRect.Bottom-Height;
end;

if(Abs(Msg.WindowPos^.X-DesktopRect.Left)<WindowGlueConst)then begin//Left
Msg.WindowPos^.X:=DesktopRect.Left;
  end;

if(Abs(Msg.WindowPos^.X-(DesktopRect.Right-Width))<WindowGlueConst)then begin//Right
   Msg.WindowPos^.X:=DesktopRect.Right-Msg.WindowPos^.CX;//Width;
end;
end;


clickmaker   (2004-07-21 14:24:00) [2]


> Они прекрасно лепятся

из пластилина ?


pasha_golub   (2004-07-21 14:18:00) [3]

Код давайте, уважаемый


Gero   (2004-07-21 14:07:00) [4]

А че это они липкие? Медом что ли намазаны?


VMcL   (2004-07-21 14:05:00) [5]

Телепаты на другом форуме.


Наверх

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