Текущий архив: 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.47 MB
Время: 0.036 c