歡迎大家在此討論討論下類函數,可以學習學習!
解决方案 »
- 求助:如何将一个C++类转换成Delphi代码
- 求一第三方控件容器控件
- 通过 GetIconInfo 获取Icon的信息,再用CreateIconIndirect创建图标,为什么图标边上会有一个黑圈?有办法去掉吗?
- 求助,向各位大大请教一个 菜单问题,谢谢!
- 一个简单的问题,高分求解!!…………
- 这种写法问题在哪儿?
- 用SQL如何实现这样的查找?
- 失业中
- 急急!在用TDatabase控件登陆SQL SERVER 2000数据库时,如何截取登陆时的出错信息
- DCOM~~~ RPC错误!!!
- 我想修改tquery的本身,使其在BEFOREOPEN前先执行一个showmessage('1');怎么实现呢
- 别人创建的库文件我如何才能打开看呢?急
....
class function ClassName: ShortString;
class function ClassNameIs(const Name: string): Boolean;
class function ClassParent: TClass;
class function ClassInfo: Pointer;
class function InstanceSize: Longint;
class function InheritsFrom(AClass: TClass): Boolean;
class function MethodAddress(const Name: ShortString): Pointer;
class function MethodName(Address: Pointer): ShortString;
....
可以看到,这些函数的操作对象都不是某一个具体的类的实例,而是类自身的相关信息,而这些信息一般来说都是直接保存在类的VMT中,因此,也只能通过类名称来进行调用!
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(TForm1.ClassName);
end;
也可以被类实例(即对象)调用:
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(Form1.ClassName);
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————