Главная страница
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.049 c
15-1177182463
ArtemESC
2007-04-21 23:07
2007.05.20
Хочу сделать файловый обменник на сервере...


15-1177168718
Pazitron_Brain
2007-04-21 19:18
2007.05.20
Как создать swap файл при загрузке установшика netbsd?


15-1176806589
икс-игрик-й
2007-04-17 14:43
2007.05.20
Помогите решить задачки по физике(кто решит отблагодарю)


2-1178203002
M1sT
2007-05-03 18:36
2007.05.20
Нелицензионный Rave Reports...


3-1172843106
kilya
2007-03-02 16:45
2007.05.20
security.fdb . модификация