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

Вниз

Создание формы динамически.   Найти похожие ветки 

 
BKV   (2002-07-04 16:25) [0]

Такой вопрос:
Я динамически создаю свою форму, которую наследую от TForm:
TAddrForm = class(TForm)
Все ее описание поместил в отдельный модуль.
Но при создании формы AddrForm:=TAddrForm.Create(self);
Возникает ошибка в ее перекрытом конструторе : " Resource TAddrForm not found" при вызове inherited Create;
(Create предка перекрыл- тут все нормально)

constructor TAddrForm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);!!!!!!ОШИБКА!
FCountry := "";
FAddress := "";

В чем дело- непойму!
Помогите!


 
Skier   (2002-07-04 16:44) [1]

>BKV
Дело в том, что у твоей формы нет dfm-файла.

Новые формы (в дизайне) создаются так
File|New|Form

После того как ты её создал, то уже можешь обозвать её
TAddrForm и дальше по тексту...


 
BKV   (2002-07-04 16:47) [2]

Но какже тогда создавать ее динамически?


 
Игорь Шевченко   (2002-07-04 16:47) [3]

constructor TAddrForm.Create(AOwner: TComponent);
begin
inherited CreateNew(AOwner);
FCountry := "";
FAddress := "";

Creates and initializes a new form.

constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;

Description

Use CreateNew instead of Create to create a form without using the associated .DFM file to initialize it. Always use CreateNew if the TCustomForm descendant is not a TForm object or a descendant of TForm.

С уважением,


 
BKV   (2002-07-04 16:51) [4]

Но какже тогда создавать ее динамически?
Я ведь могу создать форму просто
Form:=TForm.Create(self);- и некаких проблем.
А переопределенная форма создаваться также не хочет???????????



 
Skier   (2002-07-04 16:53) [5]

>BKV
Да так же и создавать как создавали.
(только видимо(?) её нужно будет убрать из списка AutoCreate)

Или можно делать так как предлагает Игорь Шевченко ©


 
qube   (2002-07-04 16:53) [6]


> BKV (04.07.02 16:47)
> Но какже тогда создавать ее динамически?

Project/Options/.., закладка Forms, убираешь AddrForm1 из списка Auto-Create. И создаешь себе динамически сколько влезет.


 
Кулюкин Олег   (2002-07-04 17:00) [7]

2 BKV
Динамическое создание и наследование - разные вещи.
Вы путаете термины.

2 Игорь Шевченко
:)))))))))))))))))
constructor TAddrForm.Create(AOwner: TComponent);
begin
inherited CreateNew(AOwner , 1);
Далее по тексту..


 
BKV   (2002-07-04 17:02) [8]

То есть, если я не использую DFM file для формы,
то я создаю ее CreateNew.
Но как тогда мне проинициализировать ее поля?


 
Skier   (2002-07-04 17:06) [9]

>BKV
А почему ты не хочешь DFM использовать ?
Объяснись.


 
Кулюкин Олег   (2002-07-04 17:08) [10]

Ошибся я, конечно же просто inherited CreateNew(AOwner)


 
BKV   (2002-07-04 17:10) [11]

Да, все нормально.
Огромное спасибо всем!


 
qube   (2002-07-04 17:13) [12]


> BKV (04.07.02 17:02)
> То есть, если я не использую DFM file для формы,
> то я создаю ее CreateNew.
> Но как тогда мне проинициализировать ее поля?

Если ты не используешь ДФМ, то сначала тебе нужно вручную создать все элементы управления на форме. Это раз.
Когда создаешь в IDE Delphi новую форму, как это все обычно делают, все равно создается новый класс, производный от TForm, у которого тоже можно переопределить конструктор (хотя это обычно не нужно, обработка OnCreate дает то же самое). Это два.


 
BKV   (2002-07-04 17:37) [13]

Я не хочу использовать .DFM файл, так как придется все время его таскать за модулем.


 
Skier   (2002-07-04 17:50) [14]

>BKV

> придется все время его таскать за модулем


За каким модулем ?!
Delphi для новой формы создаст тебе
.DFM файл + NewUnit.PAS (тобиш модуль)



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
1-47437
Марина
2002-07-03 09:18
2002.07.15
Windows XP и MessageDlg


1-47305
angelcom
2002-07-01 03:17
2002.07.15
Господа!!! Помогите новичку, плз...


1-47457
Yuri Btr
2002-07-03 11:28
2002.07.15
Независимый Timer


1-47440
zje
2002-07-02 17:13
2002.07.15
Как получить рабочую группу и описание компьютера?


3-47235
RIPer
2002-06-20 16:33
2002.07.15
Алиас





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