社区
语言基础/算法/系统设计
帖子详情
如何取得一个类的所有Public和Published属性和方法列表?
mastersky
2007-03-28 03:36:15
如题.通过代码实现.
...全文
257
5
打赏
收藏
如何取得一个类的所有Public和Published属性和方法列表?
如题.通过代码实现.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ylvb
2007-04-07
打赏
举报
回复
学习!
simb
2007-04-04
打赏
举报
回复
通过RTTI可以获得一个类的所有Published属性
var
mTypeInfo: PTypeInfo;
mTypeData: PTypeData;
mPropList: PPropList;
mPropInfo: PPropInfo;
mPropCount, i: Integer;
begin
mTypeInfo := Form1.ClassInfo;
mTypeData := GetTypeData(mTypeInfo);
if mTypeInfo^.Kind <> tkClass then Exit;
mPropCount := mTypeData^.PropCount;
if mPropCount <= 0 then Exit;
GetMem(mPropList, mPropCount * SizeOf(PPropList));
try
GetPropInfos(mTypeInfo, mPropList);
for i := 0 to mPropCount - 1 do
begin
mPropInfo := mPropList^[i];
ShowMessage(mPropInfo^.Name);
end;
finally
FreeMem(mPropList, mPropCount * SizeOf(PPropList));
end;
end;
利用VMt获取方法表.
mastersky
2007-03-28
打赏
举报
回复
肯定是可以的,只是我不会.
代码提示都可以做到,cnpack的代码助手也可以做到.
dctony
2007-03-28
打赏
举报
回复
通过RTTI可以获得一个类的所有Published属性
var
mTypeInfo: PTypeInfo;
mTypeData: PTypeData;
mPropList: PPropList;
mPropInfo: PPropInfo;
mPropCount, i: Integer;
begin
mTypeInfo := Form1.ClassInfo;
mTypeData := GetTypeData(mTypeInfo);
if mTypeInfo^.Kind <> tkClass then Exit;
mPropCount := mTypeData^.PropCount;
if mPropCount <= 0 then Exit;
GetMem(mPropList, mPropCount * SizeOf(PPropList));
try
GetPropInfos(mTypeInfo, mPropList);
for i := 0 to mPropCount - 1 do
begin
mPropInfo := mPropList^[i];
ShowMessage(mPropInfo^.Name);
end;
finally
FreeMem(mPropList, mPropCount * SizeOf(PPropList));
end;
end;
ahjoe
2007-03-28
打赏
举报
回复
不能吧。
AttributeList.zip
使用RTTI动态创建组件实例
属性
列表
,对各种
属性
值进行修改,根据需要选择V isibility得到P rivate,Protect
ed
,
Public
,
Publish
ed
的
方法
、字段、
属性
、索引
属性
。
delphi中的
public
和
publish
ed
公布成员(
publish
ed
)和公共成员(
public
)具有相同的可见度,但
publish
ed
中声明的会显示在
属性
栏,
public
不会!
publish
ed
和
public
的限制访问
属性
是一样的 ;不过,
publish
ed
一般用于组件编程中,而不常用于应用程序中。 转自OBJECT PASCAL "公布成员(
publish
ed
)和公共成员(
public
)具...
delphi的
public
与
publish
ed
publish
ed
如果
属性
含有下标,会不能编译通过,而
public
则是可以的.
属性
要声明在
publish
ed
中,才可以显示到
属性
察看器中,这个是
publish
ed
的最大用途,
publish
ed
一般用于组件编程中,而不常用于应用程序中.
Publish
ed
members have the same visibility as
public
members. The differenc
关于Delphi中
Publish
ed
和
Public
的区别
转载:http://blog.sina.com.cn/s/blog_53013a8c0100tf57.html 公布成员(
publish
ed
)和公共成员(
public
)具有相同的可见度,但
publish
ed
中声明的会显示在
属性
栏,
public
不会!
publish
ed
和
public
的限制访问
属性
是一样的 ;不过,
publish
ed
一般用于组件编程中,而不常用于应用程序中。 转自OBJEC
Delphi:class 中protect
ed
、private、
public
和
publish
ed
的含义
type TClassA = class private proc
ed
ure pro1(); protect
ed
proc
ed
ure
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章