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
[41335] Re:[질문]폼을 show로 띄우고 해제시키기
유영인 Cuperido [cuperido] 1206 읽음    2005-08-05 14:40
안녕하세요..

: 위와 같이 생성하고 삭제하면 되는데 show로 띄울때는
: 어디서 어떻게 해제 시켜 주어야 하는지요.

Show로 생성하셨을 경우에는 Close시에 이벤트를 두어서
Action으로 해제하실 수 있습니다.

: 그리고 show로 띄우면 폼이 생성되어 있는지 아닌지
: 어떻게 알 수 있나요

폼이 떠있는 경우, 하안인님께서 예제로 보여주신것과 같이
폼 동적 생성이 함수 내에서 되어, 그 폼의 포인터가 함수 밖으로 나와서 소멸되었을 경우,
FindComponent 로 참조하실 수 있습니다.

포인터를 그대로 가지고 있는 경우 (전역 변수로 잡아서 동적 생성한 경우)
Form->Visible 의 여부로 알아낼 수 있습니다.

아래 예제는 폼을 생성하는 예제입니다.
Button1 -> 모달폼 생성
Button2 -> 모달리스 폼 생성 후 이벤트로 해제
Button3 -> 모달리스 폼 생성 여부 리턴


cuperido

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

TForm *NewForm= new TForm(Application);
NewForm->ShowModal();
delete NewForm;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{

TForm *NewForm= new TForm(Application);
NewForm->Name = "NewForm";
NewForm->Show();
NewForm->OnClose = NewFormClose;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{

if(Application->FindComponent("NewForm")) {
   ShowMessage("폼이 있다");
}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::NewFormClose(TObject *Sender, TCloseAction &Action)
{

Action = caFree;

}
//---------------------------------------------------------------------------


하안인 님이 쓰신 글 :
: 폼을 showmodal인경우는
:
: void TForm1::Button1Click(Sender)
: {
:      TForm3 *Form3= new TForm3(Application);
:      Form3->ShowModal();
:      delete Form3;
: }
:
: 위와 같이 생성하고 삭제하면 되는데 show로 띄울때는
: 어디서 어떻게 해제 시켜 주어야 하는지요.
:
: 그리고 show로 띄우면 폼이 생성되어 있는지 아닌지
: 어떻게 알 수 있나요

+ -

관련 글 리스트
41334 [질문]폼을 show로 띄우고 해제시키기 하안인 769 2005/08/05
41335     Re:[질문]폼을 show로 띄우고 해제시키기 유영인 Cuperido 1206 2005/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.