根据给定一个类的名字创建类 ***分可以再加***

SunnyKang 2004-03-15 12:29:21
在DELPHI中是不是可以知道一个类名就可以自动创建他?

案例:

我项目中实现了三个类:TCLS1,TCLS2,TCLS3,一般创建这个类都是通过定义变量再create,如
var
cls1 : TCLS1;
begin
cls1 := TCLS1.Create(self);
end ;

但我现在要动态实现这三个类,我在外部存储(如数据库)了三个类的名字,我现在想根据这三个类的名字(字符串)可以动态加载他们,可以嘛?

...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ehom 2004-03-16
  • 打赏
  • 举报
回复
可以~~~这种用法在RTTI语言中很常见,Object Pascal不是提供了TClass类类型吗?前缀class of声明就行了.例子VCL中很多,因为这是常见用法.比如TPicture中根据GraphicClass的类型生成不同类的实例.

不过你的问题有问题,没这么说的,没有创建类的说法,这叫创建对象,或者是类的实例
lywho 2004-03-16
  • 打赏
  • 举报
回复
up
SunnyKang 2004-03-16
  • 打赏
  • 举报
回复
有没有详细一点的嘛?

我才学习DELPHI。现在有一个项目DELPHI开发,我想对其有一定了解好确定一个好的系统结构。
menggirl 2004-03-15
  • 打赏
  • 举报
回复
TRegGroups = class

private

FGroups: TList;

FLock: TRTLCriticalSection;

FActiveClass: TPersistentClass;

function FindGroup(AClass: TPersistentClass): TRegGroup;

public

constructor Create;

destructor Destroy; override;

procedure Activate(AClass: TPersistentClass);

procedure AddClass(ID: Integer; AClass: TPersistentClass);

function GetClass(const AClassName: string): TPersistentClass;

function GroupedWith(AClass: TPersistentClass): TPersistentClass;

procedure GroupWith(AClass, AGroupClass: TPersistentClass);

procedure Lock;

procedure RegisterClass(AClass: TPersistentClass);

procedure RegisterClassAlias(AClass: TPersistentClass; const Alias: string);

function Registered(AClass: TPersistentClass): Boolean;

procedure StartGroup(AClass: TPersistentClass);

procedure Unlock;

procedure UnregisterClass(AClass: TPersistentClass);

procedure UnregisterModuleClasses(Module: HMODULE);

property ActiveClass: TPersistentClass read FActiveClass;

end;

guestman 2004-03-15
  • 打赏
  • 举报
回复
不可以!
aiirii 2004-03-15
  • 打赏
  • 举报
回复
http://sun.cis.scu.edu.tw/~nms9115/articles/delphi/AboutRegisterClass.htm
aiirii 2004-03-15
  • 打赏
  • 举报
回复
這個, 對我的基類有要求的, 從Tobject直接繼承是不行的!
只能從TObject開始吧!

看看有誰有更好的方法!

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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