求助: 各位高手关注一下, 如何通过字符串类名创建类实例???????????????????

anykey 2005-04-18 05:30:58

例如, 有如下类TB的定义:

interface
type
TB = class
x: integer;
public
constructor Create;
end;

implatation
construcotr TB.Create;
begin
x := 100;
end;


在下面代码段中使用:
var
ClassName: string;
begin
ClassName := 'TB'; //类名字符串

//然后 如果通过ClassName得到 TB类的实例 该 实例变量如何生明??????

end;


...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
anykey 2005-04-19
  • 打赏
  • 举报
回复
谢谢两位
linzhengqun 2005-04-18
  • 打赏
  • 举报
回复
首先你的类要从Tpersistent继承下来,而不是TObject
然后写initialization部分

initialization
RegisterClass(TB);
然后写finalization部分

finalization
UnRegisterClass(TB);

然后在你的方法:
var
ClassName: string;
B: TB;
begin
ClassName := 'TB';
B:= TB(FindClass(ClassName)); //创建TB的实例
end;


g961681 2005-04-18
  • 打赏
  • 举报
回复
需要用到RegisterClass这个过程。
你要先把你工程中,所有可能的类注册一下。
然后才能,这么用!

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧