首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

应该是有关RTTI机制的有关问题!有点难

2012-02-20 
应该是有关RTTI机制的问题!有点难如TDBEdit,TDBComboBox,TDBMemo等都用相同的属性如DataField我们可以通过

应该是有关RTTI机制的问题!有点难
如TDBEdit,TDBComboBox,TDBMemo等都用相同的属性如DataField
我们可以通过
    if   GetPropInfo(Obj,   'DataField ')   <>   nil   then
        SetPropValue(TObject,   'DataField ',   Value)   来给他的DataField赋值
现在问题是:他们都有DbClick事件
如何通过一语句来调用他的DBClick事件,而不是通过类型来判断比如:
    if   TWinControl(Obj)   is   TDBEdit   then   TDBEdit(obj).OnDbClick(nil)
    else   if   TWinControl(Obj)   is   TDBComboBox   then   TDBComboBox(obj).OnDbClick(nil)
    else   if.....

[解决办法]
var
m : TMethod;
Proc: TNotifyEvent;
begin
m := GetMethodProp(obj, 'OnDblClick ');
if m.Code <> nil then
begin
@Proc := m.Code;
Proc(obj);
end;
end;

热点排行