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

Вниз

Как написать наследника от TForm?   Найти похожие ветки 

 
Prohodil Mimo ©   (2007-04-19 22:49) [0]

От TForm никогда наследников не писал, но тут понадобилось.
Для примера накатал нечто следующее:

 TLDGForm = class(TForm)
 private

 protected
 public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; Override;
 published

 end;

constructor TLDGForm.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
end;

destructor TLDGForm.Destroy ;
begin
 inherited Destroy;
end;


пытаюсь создать при помощи такого кода:

procedure TForm1.Button1Click(Sender: TObject);
Var
  TekForm : TLDGForm;
begin
TekForm := TLDGForm.Create(Application);
TekForm.ShowModal;
end;


В итоге получаю : Resource TLDGForm not found.

Что ещё надо?


 
Kolan ©   (2007-04-19 22:57) [1]

Создай пустой проект, посмотри как объявлена форма :)
— Правильно TForm1 = class(TForm)

А гриш:

> От TForm никогда наследников не писал, но тут понадобилось.


 
Kolan ©   (2007-04-19 22:58) [2]

> Что ещё надо?

Проше всего её сделать с помошью дизайнера, зачем все это в ручную писать? А нужна ей DFM"ка.


 
DrPass ©   (2007-04-19 23:00) [3]


> Что ещё надо?

Конструктор Create - для создания с dfm-файлом, CreateNew - без dfm


 
Prohodil Mimo ©   (2007-04-19 23:13) [4]

Kolan ©   (19.04.07 22:58) [2]
Проше всего её сделать с помошью дизайнера, зачем все это в ручную писать?


иногда и такое бывает полезно.

DrPass ©   (19.04.07 23:00) [3]
Конструктор Create - для создания с dfm-файлом, CreateNew - без dfm


спасибо, помогло.
но почему прокатывает такой вариант?

procedure TForm1.Button1Click(Sender: TObject);
Var
  TekForm : TForm;
begin
TekForm := TForm.Create(Application);
TekForm.ShowModal;
end;


 
_Аноним   (2007-04-19 23:21) [5]

Более того, если объявить в том же юните так:
TLDGForm = class(TMainForm) //от существующей в проекте

то тоже все проканает


 
Jeer ©   (2007-04-19 23:26) [6]


> //от существующей в проекте


ключевое слово


 
_Аноним   (2007-04-19 23:28) [7]


> ключевое слово

А ресурса TLDGForm как не было, так и нету


 
Jeer ©   (2007-04-19 23:38) [8]

А его и не надо, т.к. нет изменений в дочерней


 
Зяма   (2007-04-20 07:34) [9]

но почему прокатывает такой вариант?

constructor TCustomForm.Create(AOwner: TComponent);
begin
 GlobalNameSpace.BeginWrite;
 try
   CreateNew(AOwner);
   if (ClassType <> TForm) and not (csDesigning in ComponentState) then
   begin
     Include(FFormState, fsCreating);
     try
       if not InitInheritedComponent(Self, TForm) then
         raise EResNotFound.CreateFmt(SResNotFound, [ClassName]);
     finally
       Exclude(FFormState, fsCreating);
     end;
     if OldCreateOrder then DoCreate;
   end;
 finally
   GlobalNameSpace.EndWrite;
 end;
end;


 
Prohodil Mimo ©   (2007-04-20 16:06) [10]

только вот если я просто тупо скопирую этот текст к себе в Create, без каких-либо изменений, он заработает.



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

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.121 c
15-1176918999
Kolan
2007-04-18 21:56
2007.05.20
Поменять ли видюху 6600 на 7100?


2-1178050107
dreamse
2007-05-02 00:08
2007.05.20
Подскажите функцию для добавления к указаной переменной string


2-1177701007
Познающий
2007-04-27 23:10
2007.05.20
Коды Рида Соломона


9-1149087557
Igroman
2006-05-31 18:59
2007.05.20
Newton + PhysicsCar+OpenGL


2-1177699162
Ezorcist
2007-04-27 22:39
2007.05.20
Многопоточность в Tserversocket