Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизПриклеивание окон к краям десктопа Найти похожие ветки
← →
superedward © (2004-07-23 07:10) [0]Алл! Нужно реализовать приклеивание сабжа, но не только при перемещении окна, но и при изменении его размера (как WinAmp),
можа у кого код есть?
Поможите ради всего святого!
← →
ИдиотЪ (2004-07-23 08:14) [1]а у тебя идеи есть?
хотя бы проверка координат при перемещении и округление до границ при нужной близости
← →
Mental_Ray © (2004-07-23 09:01) [2]if form1.Left<50 then form1.Left:=0;
if form1.Left>Screen.Width-50 then form1.Left:=Screen.Width;
Для верха и низа напиши сам.
После этого засунь все это в OnResize формы.
← →
Mental_Ray © (2004-07-23 09:04) [3]А эм сорри!
во второй строчечке ошибочка:
if form1.Left>Screen.Width-50 then form1.Left:=Screen.Width-form1.Width;
← →
Керик (2004-07-23 09:04) [4]
Form1.ScreenSnap := True;
Но только для Delphi7!
← →
Fynjy (2004-07-23 09:05) [5]Есть компонент, сам не смотрел
http://koroan.by.ru/delphi/components/FormMagnet%202.2.zip
← →
superedward © (2004-07-23 10:38) [6]To [1]:
Обрабатываю сообщение WINDOWPOSCHANGING:
procedure WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING);message WM_WINDOWPOSCHANGING;
begin
if WindowState=wsMaximized then begin
inherited;
exit;
end;
if(WindowGlue)then begin{вверх}
if(Abs(Msg.WindowPos^.Y-DesktopRect.Top)<WindowGlueConst)then begin
Msg.WindowPos^.Y:=DesktopRect.Top;
end;
if(Abs(Msg.WindowPos^.Y-(DesktopRect.Bottom-Msg.WindowPos^.CY))<WindowGlueConst)then begin{вниз}
Msg.WindowPos^.Y:=DesktopRect.Bottom-Height;
end;
end;{if(WindowGlue)then begin}
{дабы размер окна не стал меньше установленного:}
if(Msg.WindowPos^.CX<Constraints.MinWidth)then begin
if Msg.WindowPos^.X<>OldPosition.Left then Msg.WindowPos^.X:=OldPosition.Right-Constraints.MinWidth;
Msg.WindowPos^.CX:=Constraints.MinWidth;
end;
if(Msg.WindowPos^.CY<Constraints.MinHeight)then begin
if Msg.WindowPos^.Y<>OldPosition.Top then Msg.WindowPos^.Y:=OldPosition.Bottom-Constraints.MinHeight;
Msg.WindowPos^.CY:=Constraints.MinHeight;
end;
To [2,3]: no comment, в OnResize не катит однозначно при включенной опции "Отоборажать содержимое окна при перетаскивании"
в Windows
To [4]: Спасибо, не знал. При перемещении работает хорошо, но при изменении размеров окна тот же глюк, что и у меня: меняется размер с другой стороны окна, за которую не тащишь.
Считаю это однозначно нездоровым явлением.
To [5]: Работает хорошо, перетаскивает; от вышеуказанного глюка избавились просто: при изменении размеров окна не примагничиваются (не лепятся, не приклеиваются)
To All: Так где же у него кнопка? (С)Приключения Электроника
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c