Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Как написать наследника от 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
2-1178180459
lobach
2007-05-03 12:20
2007.05.20
Разделители


3-1172815264
apl
2007-03-02 09:01
2007.05.20
Передача параметров


2-1177855425
dmdel
2007-04-29 18:03
2007.05.20
RichEdit


3-1172922633
---SerG---
2007-03-03 14:50
2007.05.20
Инсталятор для баз данных


1-1174368333
Fin
2007-03-20 08:25
2007.05.20
Формирование отчёта в FastReport





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский