![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Родительская и дочерняя формы [D6, IB6.x]
Gaber © (2002-09-09 14:06:00)Хочу, чтоб из род. формы 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;
Ошибка!
Prooksius (2002-09-11 10:31:00) [1]Когда ты создаешь так: TPodr.Create(Self), ты потом не имеешь ссылки на созданную форму. Ты не можешь, например, написать вне созданной формы:
Podr.[какое-то свойство] := [чему-то]
(Хотя внутри класса формы ты можешь все)
Если этого не надо, то можно и так, но потом обязательно Action:=caFree, иначе ее не удалить, AFAIK.
Gaber (2002-09-11 10:26:00) [2]Огромное спасибо всем, все получилось.
Хотя надо будет еще разобраться, почему.
=)
Gaber (2002-09-11 10:20:00) [3]Извиняюсь за назойливость, но почему надо писать так,
MyModalForm:= TMyModalForm.Create (Application);
try
MyModalForm.ShowModal;
finally
MyModalForm.Free;
end;
Почему нельзя TPodr.Create(Self), и как потом закрыть предыдущую форму, открытую по первому примеру. TPodr.Create(Self) я закрываю Action:=caFree;
ЮЮ (2002-09-11 09:27:00) [4]А если не модальная, то также определяешь её параметры после создания, но до Show. A результаты работы тебя не интересуют, раз она не модальная.
Gaber (2002-09-11 09:10:00) [5]А если не модальная.
ЮЮ (2002-09-10 03:06:00) [6]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;
Val (2002-09-09 17:26:00) [7]модальная форма создается так:
MyModalForm:= TMyModalForm.Create (Application);
try
MyModalForm.ShowModal;
finally
MyModalForm.Free;
end;
Gaber (2002-09-09 17:00:00) [8]Да в этом плане все верно, это я для примера привел.
oss (2002-09-09 15:04:00) [9]а на Form2 есть Button1 ?