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

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

Вопросик про Create формы


DenK_vrtz ©   (2002-02-01 13:33:00) 

Привет всем!!!
А вопросик вот какого плана. Я знаю имя формы - строковое значение, форма находится в Available forms, как сделать ей Create по имени.
Кйсы, всякого рода условия, типа if, наследование не устаивают!!!

Заранее благодарен!


Набережных С.   (2002-02-01 19:46:00) [1]

Должно быть так:

TCustomForm Class(GetClass("имя_класса_формы")).Create(...);


Юрий Зотов   (2002-02-01 16:14:00) [2]

Скорее всего, Вы не зарегистрировали класс формы (п.2), поэтому GetClass выдает nil.


amamed_3071   (2002-02-01 15:50:00) [3]

Var f:Tform_cLASS
Application.createForm(Tform_cLASS,f);
f.NAME=fORMnAME


DenK_vrtz   (2002-02-01 15:13:00) [4]

2 Юрий, я сейчас попробовал, а не работает. Access violation, типа, пишет!!!


Юрий Зотов   (2002-02-01 14:57:00) [5]

1. В таблицу надо записывать имя КЛАССА формы.

2. В программе все такие классы форм должны быть известны и зарегистрированы (RegisterClass). Обычно это делается в секции initialization одного из модулей.

3. А дальше - как я написал:
TCustomForm(GetClass("имя_класса_формы")).Create(...);
(можно CreateNew или CreateParented).


Johnmen   (2002-02-01 14:42:00) [6]

Тогда только ifили case... другого не дано...


DenK_vrtz   (2002-02-01 14:33:00) [7]

2 Юрий Зотов, в том то и дело, что класс формы я не знаю.
У меня есть только имя формы и все!!! В этом то вся и сложность.
Представте себе, у меня где-то в таблице записано имя формы. Я его считал. И по этому значению форме с таким именем надо сделать Create, т.е. проверить есть ли такая форма в проекте.

Спасибо.


Юрий Зотов   (2002-02-01 14:20:00) [8]

Неточность - надо: GetClass("имя_класса_формы"))

Только все это лишнее - класс формы Вы и так знаете, поэтому ничто не мешает просто создать ее без всяких фокусов.


Юрий Зотов   (2002-02-01 14:06:00) [9]

TCustomForm(GetClass("имя_формы")).Create(Application);


Johnmen   (2002-02-01 13:44:00) [10]

Application.CreateForm(....)


Наверх

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