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
[23504] Re:[질문] 동적 생성 윈도우 창 중복 실행 방지... 좀 알려주세요~ ^^;;;;;;;;
프로미 [senslove] 994 읽음    2003-01-03 02:15
안녕하세요...
오랫만에 들어와 봤네요.^^

폼 클래스가 할당됬는지 비교해 보고 만드시면 되겠네요...

if( frmMsg == NULL )
    frmMsg = new TfrmMsg(Application);

frmMsg->Show();

여기서 한가지 문제점은 frmMsg가 언제 NULL이 되는냐 입니다.
frmMsg를 Close해도 할당된 메모리에는 그대로 있습니다.
일반적으로 동적으로 생성된 클래스는 free or delete 로 메모리를 해제하는데.
Show폼의 경우에는 언제 폼이 종료될지 모르기 때문에 Show폼 자신의 Event에서
해제하도록 해야 합니다. 

방법은 frmMsg 폼의 FormClose Event에서 
Action = caFree;
를 해주시고  위의 NULL체크를 위해 
FormDestroy Event에서 
frmMsg = NULL;
을 선언해주면 될겁니다.

^^ 수고하세요...


시간한줌 님이 쓰신 글 :
:
: 안녕하세요~
: 시간한줌 입니다. 2003년 새해 복 ~ 많이~~~~~~~~~~~~ 받으세요~ &^^&
:
:
: 본론~!
:
: 윈도우 창을 동적으로 생성하는데 조금 문제가 있어서 질문 드립니다.
:
: 간단히 말해 msn을 예로 들겠습니다.
:
: A와 B라는 사용자가 대화를 하죠~
: 그런데 B가 창을 닫고 A가 메시지를 날리면 다시 창이 뜹니다.
: 그래서 또 계속 A와 B가 예길 하는데
: 이를 시기하던 C가 B에게 말을 걸면~ B와 C가 대화하는 새로운 창이 뜹니다.
:
: 이런 창 구분은 어떻게 해주나요?
:
: 간단한 예를 들어 주셨으면 정말 감사하겠습니당~ ^^;;;
:
:         Application->CreateForm(__classid(TfrmMsg), &frmMsg);
:         frmMsg->Show();
: 이렇게 하면 계속 새 창이 뜨고~ ㅠㅠ;
: 우엥~

+ -

관련 글 리스트
23498 [질문] 동적 생성 윈도우 창 중복 실행 방지... 좀 알려주세요~ ^^;;;;;;;; 시간한줌 773 2003/01/02
23504     Re:[질문] 동적 생성 윈도우 창 중복 실행 방지... 좀 알려주세요~ ^^;;;;;;;; 프로미 994 2003/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.