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

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

создание форм


sergeyst ©   (2006-12-04 09:50:00) 

Доброго времени суток всем.
Есть MDI chld форма Form1 (ТChildForm), затем динамически создается
Form2 (TChildForm), но не как дочерняя, а модальная. После закрытия Form2 указатель Form1 = nil. Создал новый класс
type
TChildForm2 = class(TChildForm);

Form2 :=  TChildForm2.Create (Application);
история та же. Почему?


Max Zyuzin   (2006-12-04 10:58:00) [1]

>Сергей М. ©   (04.12.06 10:53) [9]
..  то это уже не дочерняя форма)
Зато выглядит... как живая :-)


Сергей М.   (2006-12-04 10:53:00) [2]


> Max Zyuzin ©   (04.12.06 10:52) [8]


> если после создания сказать ей что она теперь fsNormal


..  то это уже недочерняя форма)


Max Zyuzin   (2006-12-04 10:52:00) [3]

>Сергей М. ©   (04.12.06 10:36) [7]
Мона... если после создания сказать ей что она теперь fsNormal потом скрыть ее и потом сделать ShowModal... она правда немного поморгает, зато потом откроется модально.


Сергей М.   (2006-12-04 10:36:00) [4]


> не как дочерняя, а модальная


Это как ?

Если FormStyle = fsMDIChild, то хоть из штанов выпрыгни, а визуализировать такую форму модальноне удастся


ЮЮ   (2006-12-04 10:25:00) [5]


> (т.е. классов дочерних форм несколько).


Ну если только по одному экземпляру каждого класса - тогда ладно. Но МDI интефейс, обычно, предполагает несколько экземпляров одного класса. И, соответственно, через одну переменную к ним не добраться.


> А как мне к ней обращаться

Зачем?


sergeyst   (2006-12-04 10:19:00) [6]

Max Zyuzin ©   (04.12.06 10:03) [1]
Ой, спасибо. Чего-то я об этом не подумал.


sergeyst   (2006-12-04 10:17:00) [7]

ЮЮ
А как мне к ней обращаться, если не будет переменной? Дочерняя форма не одна (т.е. классов дочерних форм несколько).


sergeyst   (2006-12-04 10:14:00) [8]

Блин, вижу только свой вопрос, а ответы - нет. Что за глюк?


ЮЮ   (2006-12-04 10:05:00) [9]


> После закрытия Form2 указатель Form1 = nil.

Чего нет даже для убитой Form2  :)
Использование глобальных переменных (Form1) для MDI chld форм - путь к ошибкам. Убей Form1 - и будет тебе счастье.

Для модальных глобальная  Form2 тоже лишняя. Убей и её и куча лишних переживаний пропадёт.


Max Zyuzin   (2006-12-04 10:03:00) [10]

procedure TForm2.FormClose(Sender: TObject;
 var Action: TCloseAction)
Можно посмотреть?


Наверх

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