Delphi中的published
2021-03-09 19:26
标签:vat rtt ble 数据 orm cto 默认 get 指令 Delphi中类的published属性则是可以在属性列表中看到并使用的属性 公布成员(published)和公共成员(public)具有相同的可见度,但published中声明的会显示在属性栏,public 不会! published和public的限制访问属性是一样的 ;不过,published一般用于组件编程中,而不常用于应用程序中。 转自OBJECT PASCAL "公布成员(published)和公共成员(public)具有相同的可见度。不同的是,运行时信息RTTI(runtime type information)为公布成员产生。RTTI允许应用程序动态地查询对象的域和属性、定位对象的方法。RTTI用于在下列情形下访问属性的值:保存 和加载文件时,在对象检查器(Object Inspector)中显示属性时,将指定的方法(即事件处理程序)与指定的属性(即事件)关联时。 公布属性只限于某些数据类型。序数、串、类、接口和方法指针等类型可以被公布;由此可见,提供的基类型其上下界范围的序数值在0到31之间的集合类型也可 以被公布,即集合必需适合于字节、字或双字(Byte,Word或Double Word);除Real48之外,任何实数类型都可以被公布。数组类型的属性(不同于下面述及的数组属性array properties)不能被公布。" 通过RTTI可以获得一个类的所有Published属性 在TForm1 = class(TForm)下面多了Button1变量和Button1Click方法,它们其实是published类型的,当该类或父类使用了“{$M+}”编译指令的情况下,默认为published成员。published成员可以在Object Inspector看到,我们可以手工加上将代码改为: type TForm1 = class(TForm) published Button1: TButton; procedure Button1Click(Sender: TObject); private procedure PriShowMsg(); { Private declarations } public procedure PubShowMsg(); { Public declarations } end; 在implementation中对上述方法进行定义: procedure TForm1.PriShowMsg; begin ShowMessage(‘私有方法调用‘); end; procedure TForm1.PubShowMsg; begin ShowMessage(‘公共方法调用‘); end; 在Button1的OnClick事件方法中调用上述两个方法: procedure TForm1.Button1Click(Sender: TObject); begin PriShowMsg; PubShowMsg; end; Delphi中的published 标签:vat rtt ble 数据 orm cto 默认 get 指令 原文地址:https://www.cnblogs.com/QuincyYi/p/12729143.html
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
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;
上一篇:UDP协议编程与获取一个网页内容