Главная страница
    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.055 c
11-1142164166
qert
2006-03-12 14:49
2006.12.24
Как узнать что объект освобожден или нет


4-1155569873
Beduir
2006-08-14 19:37
2006.12.24
DateTimePicker


2-1165230352
IGo
2006-12-04 14:05
2006.12.24
Не отображается Label, пока не загрузится OLE объект


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


1-1163161794
DVM
2006-11-10 15:29
2006.12.24
Вопрос про BeginThread.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский