uses typinfo;
//獲取物件的 rtti 屬性與事件的函式
function getpropertyandeventlist(obj: tobject; plist,elist: tstringlist): boolean;
varclasstypeinfo: ptypeinfo;
classdatainfo: ptypedata;
propertylist : pproplist;
num : integer;
size: integer;
i: integer;
begin
classtypeinfo := obj.classinfo;
classdatainfo := gettypedata(classtypeinfo);
num := classdatainfo.propcount;
size := sizeof(tpropinfo);
getmem(propertylist, size*num);
getpropinfos(classtypeinfo, propertylist);
for i := 0 to num - 1 do
begin
if propertylist[i].proptype^.kind = tkmethod then
elist.add(propertylist[i].name)
else
plist.add(propertylist[i].name);
end;
plist.sort; elist.sort;
freemem(propertylist);
result := true;
end;
//測試
procedure tform1.button1click(sender: tobject);
varpl,el: tstringlist;
begin
pl := tstringlist.create;
el := tstringlist.create;
memo1.clear;
memo2.clear;
getpropertyandeventlist(self, pl, el);
memo1.lines := pl;
memo2.lines := el;
pl.free;
el.free;
end;
end.
DOM事件物件的屬性
事件物件event的屬性 屬性 方法 型別 說明 bubbles 布林值,表示事件是否冒泡 cancelable 布林值,表示是否可以取消事件的預設行為 currenttarget 元素,當前事件處理程式所在的元素 defaultprevented 布林值,true表示以及呼叫preventdefa...
Rtti單元 1 獲取類的方法 屬性 欄位的列表
通過 rtti 單元的 trtticontext 是個 record 可以方便地獲取類的方法 屬性 欄位的列表.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dia...
Rtti單元 1 獲取類的方法 屬性 欄位的列表
通過 rtti 單元的 trtticontext 是個 record 可以方便地獲取類的方法 屬性 欄位的列表.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dia...