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

Вниз

Вопросик про Create формы   Найти похожие ветки 

 
DenK_vrtz   (2002-02-01 13:33) [0]

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

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


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

Application.CreateForm(....)


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

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


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

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

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


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

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

Спасибо.


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

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


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

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

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

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


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

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


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

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


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

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


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

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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
7-57230
guliver
2001-11-16 07:25
2002.02.18
Как написать Virtual CD?


6-57181
OGR
2001-11-27 12:01
2002.02.18
TWebBrowser


14-57210
Knight
2001-12-29 11:15
2002.02.18
Люди, никто не в курсе, чё с Майл.ру?


3-57038
Swap
2002-01-23 08:33
2002.02.18
Вопрос по RxQuery


6-57166
amamed_3071
2001-11-28 08:27
2002.02.18
Послат сообшения на порт не имея Remote acces





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