1

我正在构建一个应用程序,其中我使用 DB 填充菜单。我可以创建菜单项,但我无法将“单击时”事件链接到特定表单。我已经在我的数据库中存储了表单类的名称,并尝试使用 RTTI 在运行时绑定它们。以下是我尝试运行的代码片段。

__fastcall TfrmMainMDI::TfrmMainMDI(TComponent *Owner)
    : TForm(Owner)
{
    // Register 2 form classes
    RegisterClass(__classid(TfrmSecurity));
    RegisterClass(__classid(TfrmPassword)); 
} 

现在,当我尝试运行以下代码来调用表单时,它会给出“访问冲突”错误。

    TForm *frm = (TForm*)TFormClass(FindClass(formName));
    UnicodeString str = frm->Name;
    frm->Show();
4

2 回答 2

0

做这个:

TForm *frm = 0;
Application->CreateForm( TFormClass(FindClass(formName)), &frm );

那么如果frm不为空,

frm->Show();
于 2014-03-16T03:54:29.317 回答
0
TForm *frm = new TForm(this);

if( frm != NULL )
{
   frm->ShowModal();

   //or

   frm->Show();
}
于 2014-09-02T16:41:50.117 回答