BCB中如何返回VCL组件的运行时类型信息(RTTI)(200分)

  • 主题发起人 主题发起人 xcjp
  • 开始时间 开始时间
X

xcjp

Unregistered / Unconfirmed
GUEST, unregistred user!
比如,我要看当前活动的子窗口是不是我想要的窗体,
在Delphi中可以这样
if (ActiveMDIChild is TMyForm) then
begin
end
在BCB中,因为typeid(ActiveMDIChild)只能返回VCL的静态类型信息,也就是说
如果当前活动的窗体是TMyForm的话
typeid(ActiveMDIChild)==typeid(TForm*)
但是
typeid(ActiveMDIChild)!=typeid(TMyForm*)
望高手指教,如何返回VCL组件的运行信息。
 
if (ActiveMDIChild->ClassNameIs("TMyForm))
{
}
 
//在主窗体的OnDblClick事件中加入这些代码试试看:
void __fastcall TForm1::FormDblClick(TObject *Sender)
{
for (int i=0;
i<ComponentCount;
i++){
if (dynamic_cast<TButton *>(Components))
dynamic_cast<TButton *>(Components)->Enabled = false;
}
}
 
我同意chenxz先生或小姐的方法。[^]
 
后退
顶部