![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скомпоновать форму at runtime? [D6]
BPK © (2002-06-04 03:20:00)Есть описание класса формы (наследник от TForm). Все вложенные компоненты создаются и размещаются на форме в её конструкторе.
При выполнении программы ругается "Resource TMyForm not found". Как заставить его НЕ пользоваться ресурсами для формы?
Тем более, если я создаю объект от TForm, то всё проходит нормально.
Игорь Шевченко (2002-06-04 13:28:00) [1]>MyForm:=TMyForm.Create(nil);
TMyForm.CreateNew(nil) или TMyForm.CreateNew(Application)
Рекомендую посмотреть в forms.pas TCustomForm.Create
BPK (2002-06-04 13:17:00) [2]Строки {$R *.DFM} нет.
А код простой (к содержанию не придирайтесь, это всего лишь проба пера):
unit CForm;
interface
uses Windows,Forms,StdCtrls,SysUtils,ComCtrls,Classes;
type
TMyForm=class(TForm)
private
L:array[1..10]of TLabel;
E:array[1..10]of TEdit;
T:array[1..10]of TTrackBar;
public
constructor Create(AOwner:TComponent); override;
end;
procedure DisplayForm;
implementation
var MyForm:TMyForm;
procedure DisplayForm;
begin
MyForm:=TMyForm.Create(nil);
MyForm.ShowModal;
MyForm.Release;
end;
constructor TMyForm.Create(AOwner:TComponent);
const LH=20;
var i:integer;
begin
inherited;
Caption:="Sample runtime form assembly";
for i:=1 to 10 do begin
L[i]:=TLabel.Create(Self);
with L[i] do begin
Parent:=Self;
SetBounds(0,(i-1)*LH,30,LH);
Caption:=IntToStr(i);
end;
E[i]:=TEdit.Create(Self);
with E[i] do begin
Parent:=Self;
SetBounds(30,(i-1)*LH,30,LH);
Text:=IntToStr(i);
end;
T[i]:=TTrackBar.Create(Self);
with T[i] do begin
Parent:=Self;
SetBounds(60,(i-1)*LH,200,LH);
Min:=0;
Max:=255;
end;
end;
end;
end.
Mike_Goblin (2002-06-04 10:34:00) [3]У тебя в модуле формы присутствует строка
{$R *.DFM}
Если да, удали ее
Игорь Шевченко (2002-06-04 09:55:00) [4]Код бы посмотреть...