![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопросик про 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(....)