Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
7-47822
Softmaster
2002-04-21 08:27
2002.07.15
Проблема с печатью!


1-47483
yakshe
2002-07-03 18:05
2002.07.15
подключить необходимый фрейм к Panel


8-47607
d.romanov
2002-03-05 15:11
2002.07.15
Декодер


4-47905
Dmk
2002-05-13 22:06
2002.07.15
Как очистить оперативную память в Win9x?


14-47698
Igorek
2002-06-17 23:33
2002.07.15
~Rand~, обьясни нам глупым что ты хочешь - может поймем.