|
1. 일단 님이 하시는 방법대로해도 되구요
2. TFImage * FImage[2] ;를 TFMain 에 선언하지 않고
global 로 선언해서 써두 되구요
3. 그리구 Screen->FormCount; , Screen->Forms 를 이용해서
찾아볼수도 있습니다.
---------------------------------------------------------
개인적으로는 보통 Modal로 띄울경우 Show한곳에서 delete를 하도록 합니다.
(그러니까 Main폼에서 delete하도록)
아래코드처럼 스스로 free될때는
3번 - Screen->Forms 에서 찾는방식으로 하거나
2번 - 전역변수를 쓰는 방식으로 합니다.
그럼...
반짝반짝 님이 쓰신 글 :
: 아래와 같이 구성을 했는데 찾다찾다 말이 되는지는 모르겠는데 이렇게 구성했습니다.
: 이렇게 하니깐 되기는 하는데 더블포인터도 쓰고 그래서 쫌 어거지 같은 느낌이 들어서요
: 혹시 다른 방법이 있나 문의 드립니다.
:
: 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 ;
: }
|