Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.034 c
6-1086518328
VID
2004-06-06 14:38
2004.08.08
Поведение сокета при отправке данных


14-1089707695
KosilkA
2004-07-13 12:34
2004.08.08
Вот же гадость! (portal.tetki.ru)


3-1089880727
Алексей
2004-07-15 12:38
2004.08.08
Смерть ADO. Как восстановить?


1-1090494788
~ShamaN~
2004-07-22 15:13
2004.08.08
Quick Report


1-1090474367
SkyP
2004-07-22 09:32
2004.08.08
как создать объект по имени класса ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский