Главная страница
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.056 c
1-1174544437
XsID
2007-03-22 09:20
2007.05.20
Противостояние принтера


9-1149829734
Kobik..
2006-06-09 09:08
2007.05.20
Повышение качества текстуры


15-1177076711
Ringo
2007-04-20 17:45
2007.05.20
Вот те раз! А я думал, - Медведев...


8-1157958808
aKirill.INFO
2006-09-11 11:13
2007.05.20
Как работает функция GetDIBits


11-1150662182
DevilDevil
2006-06-19 00:23
2007.05.20
"PROJECT Informator" - утилитка в помощь KOL программисту