C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45655] Re:복수 폼의 간에 mutex지정이... 도와주세요....
장성호 [nasilso] 849 읽음    2006-07-14 17:35
서브 Form들을 한번만 생성하는것이 목적인가요?

방법1. :: 동적으로 생성하지 않는다.

   1. 동적으로 생성하지 말고 그냥 Project Optios->  Forms 에서  sub폼들을  Auto-Create Forms에 넣어두세요
         Form1  //Main Form  
         Form2  //Sub Form
         Form3  //Sub Form
   2. 그리고  이미지 또는 버튼을 클릭했을때 
      그냥 new 하지 마시고 Form2->Show(); ,  Form2->ShowMdal();
      Form2,Form3 에서 Close하더라고 OnClose때 Action=caFree 로 하지 않으면 ..
      다시 말해 서버폼을 Close할때 메모리에서 지우지 않으면
      계속 그냥 Form2->Show(); ,  Form2->ShowMdal(); 만 하시면 됩니다.
 
방법2.  동적으로 생성하고 폼이 닫힐때 죽인다.(메모리에서 삭제한다)
    1. 동적으로 생성하지 않는다면 서브폼을 생성할대 Owner로 Main폼을 주시구요
         Form2=new TForm2(Form1); 또는
         Form2=new TForm2(this);  //
         //이런식으로 하면 Owner인 this나 Form1이 죽을때 Form2도 같이 죽습니다.

     2. 그리고 서브폼의 Close이벤트에서 Action=caFree로 해주십시요  //죽을때 스스로 메모리에서 삭제되는 방법
         그러면 서브폼이 Close될때 스스로 알아서 죽습니다.(메모리에서 삭제 됩니다.)
         이런 경우 계속 새롭게 new해도 상관없죠

  방법3. 동적으로 생성하되 폼이 닫힐때 죽이지 않고 계속활용한다.
     1. Image나 Button을 클릭할대 서브폼 Form2나 Form3를 생성하는 부분에서
         서버폼 포이터가 NULL인경우만 새롭게 생성해주면 됩니다.
         그러면 같은 종류의 서브폼은 딱한번만 생성되죠
         void __fastcall Form1::Image1Click(TObject *Sender)
         {
                   if(Form2==NULL)Form2=new TForm2(this);
                   Form2->Show();
         }
         void __fastcall Form1::Image2Click(TObject *Sender)
         {
                   if(Form3==NULL)Form3=new TForm3(this);
                   Form3->Show();
         }
      2. 이경우 서브폼이 Close될때 아무것도 하지 마십시요
        서브폼 Close이벤트에서 Action에 caFree로 하면 안됩니다.


                                

                
          

      
         
      


아야 님이 쓰신 글 :
: 안녕하세요....
: 또 이렇게 질문을 올리게 되었습니다.. m( - -)m
:
: 메인 윈도우( 고정임)에서  배치된 이미지 를 클릭하면 다른 동적 윈도우가 열려,  서브윈도우에서 실제로 여러가지 동작이 이루어집니다 ...                <------ ( 하나의 서브폼에대해  여러가지 이미지를 클릭)
: 또다른 이미지를 클릭해서 동일서브폼에서 여러가지 작업을함...
:
: 근데 서브폼을 종료시킬려고 하니깐 이런!!!!!   이미지를 클릭한 수만큼 종료실행을 해야만 했습니다...
:
: 그래서 mutex오브젝트을 작성해서 이중기동을 방지하고 싶은데...메인폼이랑 서브폼간의 연결이 잘 안됩니다...
: 메인폼은 고정이니깐 서브폼에서mutex작성해 이미지클릭해서 생성된 서브폼이 닫히지 않는한 다른 서브윈도우를 안 열리게 하고싶은데요....
:
: 안되요....며칠간 책을 찾아보고 인터넷으로 알아봤는데 ...... m( - - )m
:  
:
: 후덥지근한 날씨에 건강 해치지 않도록 조심하세요 ^^/

+ -

관련 글 리스트
45650 복수 폼의 간에 mutex지정이... 도와주세요.... 아야 810 2006/07/14
45655     Re:복수 폼의 간에 mutex지정이... 도와주세요.... 장성호 849 2006/07/14
45658         그런데... 메인메뉴에서 또 다시 복수 창이.... 아야 784 2006/07/15
45663             Re:그런데... 메인메뉴에서 또 다시 복수 창이.... 장성호 845 2006/07/15
45653     Re:복수 폼의 간에 mutex지정이... 도와주세요.... 쩡이 843 2006/07/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.