Главная страница
    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.039 c
1-1090585840
zorik
2004-07-23 16:30
2004.08.08
Создать форму


14-1089975030
Kerk
2004-07-16 14:50
2004.08.08
Кондиционеры. Кто они?


1-1090829144
oss
2004-07-26 12:05
2004.08.08
присоединение файла obj


14-1090563446
Vlad Oshin
2004-07-23 10:17
2004.08.08
Кто сталкивался с таким в winworde?


14-1090007790
Nickola2
2004-07-16 23:56
2004.08.08
Ураа!!! Подключил через GPRS дома телефон!! :))





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский