Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

Прилипание дочерних окон к главному окну   Найти похожие ветки 

 
Димыч ©   (2006-11-08 14:17) [0]

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


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

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

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


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

Я реализую совместное перемещение главного окна (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) [3]

Что такое JEDI VCL?


 
Eraser ©   (2006-11-08 14:31) [4]

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

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


 
Eraser ©   (2006-11-08 14:32) [5]

> [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/


 
Димыч ©   (2006-11-08 14:33) [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;


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

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


 
novill ©   (2006-11-08 14:37) [8]

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


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

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


 
Eraser ©   (2006-11-08 15:03) [10]

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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
3-1160010458
Bew
2006-10-05 05:07
2006.12.24
Фильтрация в DataSet


2-1165480049
Галинка
2006-12-07 11:27
2006.12.24
Все же, как рисовать


4-1155809857
apic
2006-08-17 14:17
2006.12.24
Работа с ресурсами


2-1165392523
Roman_ln
2006-12-06 11:08
2006.12.24
список ComboBox функция поиска элемента


1-1163063449
MegaVolt
2006-11-09 12:10
2006.12.24
Как правильно отлавить изменение Handle компонента?