Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с MDI формой [D7]


Shc ©   (2004-07-28 12:51:00) 

Имеется материнская форма. Из нее динамически вызывается другая МДИ форма.
Как создать дочернее окно на второй форме (у меня оно всегда создается на первой).
Вот пример моего кода:
procedure TMDIForm1.CreateSubMDI;
begin
 MDIForm2:= TMDIForm2.Create(Application);
 MDIForm2.visible:=true;
end;

---------------------------------------
Procedure TMDIForm2.CreateChild(sender:TObject);
var Child:TChildForm;
begin
 child:=TChildForm.Create(self);
 child.parent:=MDIForm2;
end;


s999   (2004-07-28 16:56:00) [1]

Все это решается одной строкой, напиши:

child.ParentWindow := MDIForm2.Handle;

Просто Parent и ParentWindow вещи очень разные, не путай.


shc   (2004-07-28 14:57:00) [2]

Я так понимаю, что концепция родительско-дочерних форм такого варианта не предусматривает.
По+тому вопрос снимается.


Shc   (2004-07-28 13:44:00) [3]

Хотелось бы.
Предполагается написание программы-редактора, которая будет работать с несколькими документами.
А програмка-утилита к ней тоже с дочерними окнами. Хотелось бы все это зашить в один ехе-шник (без длл)


Игорь Шевченко   (2004-07-28 13:33:00) [4]


> Очень интерестный подход.


Угу, интереснее некуда. RTFS Forms.pas


> А обойти это как-то можно?


Можно-то можно, способ, как обойти можно извлечь из того же вдумчивого чтения forms.pas

А нужно ?


shc   (2004-07-28 13:27:00) [5]

Очень интерестный подход. А обойти это как-то можно?


Игорь Шевченко   (2004-07-28 13:12:00) [6]


> Как создать дочернее окно на второй форме (у меня оно всегда
> создается на первой).


Никак, скорее всего. Или очень много кода писать.

Дочерняя форма создается как дочернее окно Application.MainForm.ClientHandle


Наверх

Титульная страница Поиск, карта сайта Написать письмо