Главная страница
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
1-1163143153
Sergey__
2006-11-10 10:19
2006.12.24
Работа со считывателем HID iClass


15-1164858694
Slider007
2006-11-30 06:51
2006.12.24
С днем рождения ! 30 ноября


2-1165238049
.ruslan
2006-12-04 16:14
2006.12.24
RichEdit, добавить строку с разным фрифтом


2-1165447605
AlexeyT
2006-12-07 02:26
2006.12.24
Как отловить скроллинг/отрисовку TScrollBox?


6-1154024940
Adventure
2006-07-27 22:29
2006.12.24
Зависание программы при работе с сокетами ..