Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Базы";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-98250
Shil
2002-07-30 10:05
2002.09.30
В продолжение Indy


3-97941
Новенький в Делфи
2002-09-08 01:30
2002.09.30
Разроботка клиент-сервер


1-98142
TopGun
2002-09-16 20:21
2002.09.30
Глючит программа


14-98284
undert
2002-09-03 20:29
2002.09.30
To WebDesigners and Creators


1-98172
Taa
2002-09-17 18:14
2002.09.30
Работа с массивами Variant





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