Главная страница
    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.015 c
3-47066
Hill
2002-06-19 14:39
2002.07.15
Столбец DBGrid a записать в StringList


4-47866
Maybe
2002-05-12 16:52
2002.07.15
Рисование API , WM_INITDIALOG, WM_PAINT


4-47882
SLY-YO
2002-05-11 14:22
2002.07.15
Как на Delphi отключить отдельные кнопки.


1-47253
Grave
2002-06-26 23:30
2002.07.15
Переключение задач (task switching)


3-47212
Леван
2002-06-14 10:00
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский