Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Поиск окон в MDI   Найти похожие ветки 

 
EvgeniyR ©   (2004-03-24 15:15) [0]

Из одной дочерней формы пытаюсь узнать открыта ли другая дочерняя форма: if FindWindow("TForm1", "Тра-ля-ля") <> 0 then exit, но всегда получается, что форму не находит. Как еще можно найти открытую форму? Заранее спасибо.


 
Defunct ©   (2004-03-24 15:19) [1]

Используйте связи один-ко-многим, много-к-одному через гравную форму MDI проекта, которая может хранить хендлы всех открытых MDI Child.


 
EvgeniyR ©   (2004-03-24 15:45) [2]

Что-то не понятно...


 
Defunct ©   (2004-03-24 15:52) [3]

В главной форме храните динамический массив хендлов всех существующих на данный момент MDI Child. А из любого MDI Child вы можете обратиться к MainForm всегда и получить требуемый хендл.


 
Defunct ©   (2004-03-24 16:15) [4]

Попытаюсь объяснить

Допустим у вас есть MDI приложение с главной формой MainForm. В главной форме по какому-то событию создаются дочерние формы MDIChild, главная форма имеет информацию о всех создаваемых формах (Handle, указатель на экземпляр и т.п.) и может свободно хранить эти данные в каком-то массиве, позже это позволит главной форме обращаться непосредственно к любой дочерней форме (связь один-ко-многим). Дочерние же формы знают только о существовании главной формы (связь много-к-одному), вот к ней они и должны обращаться когда встает вопрос о передаче какой-то информации другому MDIChild.


 
Плохиш   (2004-03-24 16:20) [5]

А чем MDIChildren не подходит?


 
Digitman ©   (2004-03-24 16:26) [6]


> открыта ли другая дочерняя форма: if FindWindow


форма - это форма, окно - это окно

на то и формы, чтобы легче было контролировать окна

спрашивается, на кой шут манипулировать окнами, если контролирующая MDIParent-форма содержит всю исчерпывающую инф-цию о своих MDIChild-формах ? проктология, однако ..


 
Defunct ©   (2004-03-24 16:32) [7]

А вообще, если у вас возник вопрос о передаче информации между MDIChild формами, это говорит о том, что MDI приложение спроектировано не верно.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.074 c
4-1075960900
Onyx
2004-02-05 09:01
2004.04.11
CreateProcess в Win2k


3-1081939231
31512
2004-04-14 14:40
2004.04.11
TClientDataSet.ApplyUpdates(0) &amp; TClientDataSet.Refresh


3-1081934475
human
2004-04-14 13:21
2004.04.11
Direct Oracle Access


11-1059648100
Kirill
2003-07-31 14:41
2004.04.11
А где у формы Canvas.Draw?


3-1079085245
kolega
2004-03-12 12:54
2004.04.11
Alias