|
제가 보기엔 TFMain의 생성부분
예)
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
FImage[0] = NULL;
FImage[1] = NULL;
}
을 하시고, 아래 부분에서
void __fastcall TFMain::FormShow(TObject *Sender)
{
if(FImage[0] == NULL) FImage[0] = new TImage(This);
if(FImage[1] == NULL) FImage[1] = new TImage(This);
}
하시면 될듯하네요.
참고로 어짜피 부모가 소멸 될때 자동 소멸되지만...소멸 부분에
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(FImage[0] != NULL) delete FImage[0];
if(FImage[1] != NULL) delete FImage[1];
FImage[0] = NULL;
FImage[1] = NULL;
}
이렇게 하시면 더 깔끔할꺼 같구요..
그럼 눈팅이 HoPe입니당...즐프요~ *^^*;
반짝반짝 님이 쓰신 글 :
: 아래와 같이 구성을 했는데 찾다찾다 말이 되는지는 모르겠는데 이렇게 구성했습니다.
: 이렇게 하니깐 되기는 하는데 더블포인터도 쓰고 그래서 쫌 어거지 같은 느낌이 들어서요
: 혹시 다른 방법이 있나 문의 드립니다.
:
: class TFMain : public TForm
: {
: void __fastcall FormShow(TObject *Sender);
: void __fastcall Button1Click(TObject *Sender);
: virtual __fastcall TFMain(TComponent *Owner);
: TFImage * FImage[2] ;
: };
:
: void __fastcall TFMain::FormShow(TObject *Sender)
: {
: FImage[0] = new TFImage(Application);
: FImage[0] -> Init(CamId , &FImage[0]);
:
: FImage[1] = new TFImage(Application);
: FImage[1] -> Init(CamId , &FImage[1]);
: }
:
:
: void __fastcall TFMain::Button1Click(TObject *Sender)
: {
: if(FImage[0] != NULL) {
:
: 이부분을 하려고 지금 이렇게 어거지로 짜논거 거든요?
: 그니깐 메모리가 살아 있는지 아닌지 확인 하구 메인폼에서
: 접근을 해야 뻑이 않나서요 ;;
:
: }
: }
:
:
: //---------------------------------------------------------------------
: class TFImage : public TForm
: {
: void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
: void __fastcall Init(int CamId , TFImage ** Addr);
: TFImage ** Address ;
: };
:
:
: void __fastcall TFImage::Init(int CamId , TFImage ** Addr)
: {
: Address = Addr ;
: }
: void __fastcall TFImage::FormClose(TObject *Sender, TCloseAction &Action)
: {
: Action = caFree;
: PSelView->WindowProc = OriginalProc;
: *Address = NULL ;
: }
|