两种窗口建立有什么差别呢?为什么会出现错误指针?
我在fsMDIChild窗口fm_GY中调用fsMDIChild窗口fm_GYCX
void __fastcall Tfm_GY::BT_SearClick(TObject *Sender){ if(fm_GYCX == NULL) Application->CreateForm(__classid(Tfm_GYCX), &fm_GYCX);// fm_GYCX = new Tfm_GYCX(this); // 这样和上面这样建立窗口有什么差别呢?为什么用这句不行?会出现错误指针? fm_GYCX->Show(); fm_GY->Close();}void __fastcall Tfm_GY::FormClose(TObject *Sender, TCloseAction &Action){ Action=caFree; fm_GY=NULL;}//---------------------------------------void __fastcall Tfm_GYCX::FormClose(TObject *Sender, TCloseAction &Action){ Action=caFree; fm_GYCX=NULL;}//---------------------------------------
if (fm_GYCX== NULL) fm_GYCX= new Tfm_GYCX(this);fm_GYCX->Show();
[解决办法]
两种方法都没有错
检查你自己的代码 看看别的哪个地方出问题了
[解决办法]
//---------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"#include "Unit2.h"#include "Unit3.h"//---------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ Application->CreateForm(__classid(TForm2), &Form2); Form2->Show();}//---------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ Form3 = new TForm3(this); Form3->Show();}//---------------------------------------