Форум: "Прочее";
Текущий архив: 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