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

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

Прилипание дочерних окон к главному окну [D7, Win95/98, WinXP]


Димыч ©   (2006-11-08 14:17:00) 

Подскажите как правильно реализовать прилипание дочерних окон к главному окну, причем так что бы при перемещении главного окна дочернее окно так же перемещалось вслед за главным.


novill   (2006-11-08 15:14:00) [1]

> В WinXP этот способ более менее работает, а вот в Win98
> дочернее окно отстает или вовсе остается в дали от главного
> окна

1. Что значит более или менее, у меня эта фигня четко отрабатывает на ХР.
2. Почему не использовать WM_MOVE


Eraser   (2006-11-08 15:03:00) [2]

> [7] Димыч ©   (08.11.06 14:36)

это лучше, чем 10 маленьких библиотек им. Крупской ))


Димыч   (2006-11-08 14:39:00) [3]

Я так вообщем и делаю, только хочется чтоб и в процессе перемещения все окна двигались как единое целое.


novill   (2006-11-08 14:37:00) [4]

В главной форме хранить список "прилипших" форм, при перемещении главной формы изменять координаты "прилипших" на соответствующие значения.


Димыч   (2006-11-08 14:36:00) [5]

JEDI VCL - громадная колекция компонентов (около 500 !!!), хорошо что в Ленинскую библиотеку не послали ответ искать.


Димыч   (2006-11-08 14:33:00) [6]

немного ошибся, вот так лучше :

type
TForm1 = class(TForm)
...
procedure WMMOVINGf1 (var Me: TMessage);     message WM_MOVING;
...

procedure TForm1.WMMOVINGf1(var Me: TMessage);
begin
if klip then  // Если вторая форма считается прилипшей тогда
begin
form2.Left:=form1.Left;
form2.Top:=form1.Top+form1.Height;
end;
end;


Eraser   (2006-11-08 14:32:00) [7]

> [3] Димыч ©   (08.11.06 14:29)

гугл рулит
http://www.google.ru/search?hl=ru&q=JEDI+VCL&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
http://homepages.borland.com/jedi/jvcl/
http://www.delphi-jedi.org/


Eraser   (2006-11-08 14:31:00) [8]

> [2] Димыч ©   (08.11.06 14:29)

а где тут реализация "прилипания"?
+ не факт, что юзеру удобно, если второе окно обязательно выше главного.


Димыч   (2006-11-08 14:29:00) [9]

Я реализую совместное перемещение главного окна (form1) и дочернего (form2) следующим образом

type
 TForm1 = class(TForm)
...
procedure WMMOVINGf1 (var Me: TMessage);     message WM_MOVING;
...

procedure TForm1.WMMOVINGf1(var Me: TMessage);
begin
if klip then  // Если вторая форма считается прилипшей тогда
 begin
 form2.Left:=form1.Left;
 form2.Top:=form1.Top-form2.Height;
 end;
end;


В WinXP этот способ более менее работает, а вот в Win98 дочернее окно отстает или вовсе остается в дали от главного окна


Димыч   (2006-11-08 14:29:00) [10]

Что такое JEDI VCL?


Eraser   (2006-11-08 14:24:00) [11]

> [0] Димыч ©   (08.11.06 14:17)

посмотреть, как данная функциональность реализована, допустим, в JEDI VCL.


Наверх

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