|
ㄳㄳ ㅎㅎ 2번방법으로 할려구용 ;;
참나 ;; 괜히 어렵게 생각했네용 ㅋㅋ ^^;
장성호 님이 쓰신 글 :
: 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 ;
: : }
|