Вниз
Скачать: CL | DM;

Родительская и дочерняя формы   Найти похожие ветки 

← →
Gaber ©   (2002-09-09 14:06) [0]

Хочу, чтоб из род. формы MDI приложение открывалась дочерняя форма, из нее еще одна, желательно модально и в нее передавалась некоторая информация из первой дочерней.
Так работает (когда во вторую передается инфо из родительской)

MainUnit1:
procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Create(Self);
end;

ChildUnit2:

procedure TForm2.Button1Click(Sender: TObject);
begin
TForm3.Create(Self);
end;

ChildUnit3:

procedure TForm3.FormCreate(Sender: TObject);
begin
Label1.Caption:=Form1.Button1.Caption;
end;

А если так:

procedure TForm3.FormCreate(Sender: TObject);
begin
Label1.Caption:=Form2.Button1.Caption;
end;

Ошибка!


← →
oss ©   (2002-09-09 15:04) [1]

а на Form2 есть Button1 ?


← →
Gaber ©   (2002-09-09 17:00) [2]

Да в этом плане все верно, это я для примера привел.


← →
Val ©   (2002-09-09 17:26) [3]

модальная форма создается так:
MyModalForm:= TMyModalForm.Create (Application);
try
MyModalForm.ShowModal;
finally
MyModalForm.Free;
end;


← →
ЮЮ ©   (2002-09-10 03:06) [4]

Label1.Caption:= Form2.Button1.Caption;
Если посмотреть Unit MDIChild формы там нет строчки
Var Form2:TForm2, имеющейся y обычных форм, что совершенно естественно, т.к. этих форм иожет быть много и одной переменной недостаточно. Но и ссылаться на форму вышеописанным способом нельзя.

Добавлю к Val © (09.09.02 17:26)

MyModalForm:= TMyModalForm.Create (Application);
try
//здесь настроить модальную форму
MyModalForm.Label1.Caption...
MyModalForm.ShowModal;
if MyModalForm.modalResult=mrXXX then
begin
//здесь проанализировать модальную форму
if MyModalForm.....
end;
finally
MyModalForm.Free;
end;



← →
Gaber ©   (2002-09-11 09:10) [5]

А если не модальная.


← →
ЮЮ ©   (2002-09-11 09:27) [6]

А если не модальная, то также определяешь её параметры после создания, но до Show. A результаты работы тебя не интересуют, раз она не модальная.


← →
Gaber ©   (2002-09-11 10:20) [7]

Извиняюсь за назойливость, но почему надо писать так,

MyModalForm:= TMyModalForm.Create (Application);
try
MyModalForm.ShowModal;
finally
MyModalForm.Free;
end;

Почему нельзя TPodr.Create(Self), и как потом закрыть предыдущую форму, открытую по первому примеру. TPodr.Create(Self) я закрываю Action:=caFree;


← →
Gaber ©   (2002-09-11 10:26) [8]

Огромное спасибо всем, все получилось.
Хотя надо будет еще разобраться, почему.
=)


← →
Prooksius ©   (2002-09-11 10:31) [9]

Когда ты создаешь так: TPodr.Create(Self), ты потом не имеешь ссылки на созданную форму. Ты не можешь, например, написать вне созданной формы:
Podr.[какое-то свойство] := [чему-то]
(Хотя внутри класса формы ты можешь все)

Если этого не надо, то можно и так, но потом обязательно Action:=caFree, иначе ее не удалить, AFAIK.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-98072
NightCon
2002-09-19 13:10
2002.09.30
Вычисления с TDateTime


14-98347
AL2002
2002-09-06 11:29
2002.09.30
Тут надо такая козырнющая штука, прям не знаю, знает кто или нет


1-98163
$hade
2002-09-16 12:07
2002.09.30
Delphi 7 Studio!!


1-98189
Новенький в Делфи
2002-09-18 00:07
2002.09.30
Обработчик событий в другом модуле. Как сделать?


3-97993
ang
2002-09-09 14:01
2002.09.30
не могу найдти причину отказа SQL UPDATE ?




   Наверх