Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
Димыч ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
2-1165566635
Roman_ln
2006-12-08 11:30
2006.12.24
Help!!! listBox найти max кол. повторяющихся элементов


1-1163014103
gosha73
2006-11-08 22:28
2006.12.24
перехват WM_SIZE для TApplication


2-1165251868
DelphiLexx
2006-12-04 20:04
2006.12.24
Pause и MASSIVINSERT


10-1127095897
NikNet
2005-09-19 06:11
2006.12.24
Как изменить контекстное меню Explorer?


2-1165573494
dest
2006-12-08 13:24
2006.12.24
Вычленить имя конечной папки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский