Ошибка при закрытии чилдовского MDI окна
От: Хэлкар  
Дата: 05.04.03 13:03
Оценка:
У меня такая проблема. Есть программа с MDI формой. В чилдовской форме есть класс.
Child.cpp
//---------------------------------------------------------------------------

void __fastcall TFDoc::FormCreate(TObject *Sender)
{
Net=new cNet();
Image1->Repaint();
}
//---------------------------------------------------------------------------


void __fastcall TFDoc::FormCloseQuery(TObject *Sender, bool &CanClose)
{
int res = Application->MessageBoxA("Сохранить документ?","Сохранение", MB_YESNOCANCEL + MB_ICONQUESTION);
if(res == IDCANCEL){CanClose = false;}
if(res == IDYES){}
if(res == IDNO){}
}

//---------------------------------------------------------------------------

void __fastcall TFDoc::FormDestroy(TObject *Sender)
{
delete Net;
}
//---------------------------------------------------------------------------

void __fastcall TFDoc::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;        
}
//---------------------------------------------------------------------------

Child.h
class cNet
{
private:

        int  comp_n, coords[50][2];

public:

        cNet();
        ~cNet();
        int Num();
        int Test(int x, int y);
        void Add(int x, int y);

};
//---------------------------------------------------------------------------
cNet::cNet()
{
int i;
comp_n=0;
for(i=1; i<=50; i++){coords[i][0]=0;coords[i][1]=0;};
};
//---------------------------------------------------------------------------
cNet::~cNet()
{
};
//---------------------------------------------------------------------------


class TFDoc : public TForm
{
__published:    // IDE-managed Components
    TOpenDialog *OpenDialog1;
    TSaveDialog *SaveDialog1;
    TMainMenu *MainMenu1;
    TMenuItem *MFile;
    TMenuItem *MOpen;
    TMenuItem *MSave;
        TImage *Image1;
        TImageList *ImageList1;
        TToolBar *ToolBar1;
        TToolButton *ToolButton1;
        TToolButton *ToolButton2;
        TMenuItem *N1;
        TEdit *Edit1;
        TEdit *Edit2;
    void __fastcall MOpenClick(TObject *Sender);
    void __fastcall MSaveClick(TObject *Sender);
        void __fastcall Image1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y);
        void __fastcall Image1DblClick(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
        void __fastcall Image1Click(TObject *Sender);
        void __fastcall N1Click(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private:    // User declarations
public:        // User declarations
    __fastcall TFDoc(TComponent* Owner);
        cNet* Net;
        
};
//---------------------------------------------------------------------------
extern PACKAGE TFDoc *FDoc;
//---------------------------------------------------------------------------
#endif

MDIForm.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "UMDI.h"
#include "UDoc.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFMDI *FMDI;
//---------------------------------------------------------------------------
__fastcall TFMDI::TFMDI(TComponent* Owner)
    : TForm(Owner)
{
}

//---------------------------------------------------------------------------

void __fastcall TFMDI::MVertClick(TObject *Sender)
{
 TileMode = tbVertical;
 Tile();
}
//---------------------------------------------------------------------------
void __fastcall TFMDI::MIconsClick(TObject *Sender)
{
 ArrangeIcons();
}
//---------------------------------------------------------------------------
void __fastcall TFMDI::MNewClick(TObject *Sender)
{
 TFDoc* TF = new TFDoc(this);
 TF->Caption = "Документ " + IntToStr(MDIChildCount);
}
//---------------------------------------------------------------------------

Но при закрытие child окна появляется ошибка (что-то про Debugger Access). Что мне делать, где я ошибся?
З.Е. Писано на Биледере.

06.04.03 03:27: Перенесено из 'C/C++'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.