在这种情况OnCreate下,frmRunning变量尚未分配,这就是代码崩溃的原因。由于您已经在类中,只需使用方法的this指针:
void __fastcall TfrmRunning::FormCreate(TObject *Sender)
{
//frmRunning->Show();
this->Show();
}
或者简单地说:
void __fastcall TfrmRunning::FormCreate(TObject *Sender)
{
//frmRunning->Show();
Show();
}
在方法中做同样的事情btnRunClick()- 使用this指针而不是frmStart变量:
void __fastcall TfrmStart::btnRunClick(TObject *Sender)
{
//frmStart->Hide();
this->Hide();
...
}
或者:
void __fastcall TfrmStart::btnRunClick(TObject *Sender)
{
//frmStart->Hide();
Hide();
...
}
最后,您应该使用new运算符而不是方法,并且在表单完成初始化之前TApplication::CreateForm()不要调用方法:Show()
void __fastcall TfrmStart::btnRunClick(TObject *Sender)
{
frmRunning = new TfrmRunning(Application);
frmRunning->Show();
Hide();
}
__fastcall TfrmRunning::TfrmRunning(TComponent *Owner)
: TForm(Owner)
{
// initialize this Form as needed...
}