关于动态创建窗体(50分)

  • 主题发起人 主题发起人 budianermayi
  • 开始时间 开始时间
B

budianermayi

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个单元里自己编了一个类:
tcarlist=class(tform) ......
在程序中想动态创建这个类的窗体:
procedure TForm1.Button2Click(Sender: TObject);
var
ok:tcarlist;
begin
ok:=tcarlist.Create(application);
end;
提示说:resouse tcarlist not found
请问为什么,我怎么才能解决这个问题?
 
調用前加上:
registerclass(tcarlist);
 
只要是屬於TForm類, 必需要有配對的DFM, 你一定不是New一個 Form, 而是New一個Unit,
在Unit中自己打入 TCarList = class(TForm)來製做吧!
如此是無法成功的, 因為TForm的constructor Create中會依照Class在Resource找尋
Form的RTTI信息, 所以必需要在Project中伴隨著DFM, 否則無法建立Form的實例
 
lorderic: 那么就是说根本没有办法动态创建自己定义的form了吗?>>>>???

 
哦。又学一招。
 
要registerclass!
 
registerclass是干什么用的?
我registerclass了之后还是不行,还是出resouse not found 的错误!
 
请大家帮帮我呀!!!!!!
 
见过
{$R *.res}吗?
为CarList也建一个吧.
 
lorderic说的有道理,你可以new一个Form,然后Option选项中Form叶上,将auto-create
form中该窗体去掉,你就可以使用你的方法动态创建了。
 
看看《Delphi 5 开发人员指南》第4章的窗体继承的例子吧。

电子书和源码在论坛顶部“资料下载”里可以找到。
 
后退
顶部