![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прилипание дочерних окон к главному окну [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.