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
[10498] Re:임의의 윈도우를 생성해서 이벤트 추가하기..? ㅡ.ㅡ;;
박지훈.임프 [cbuilder] 987 읽음    2001-08-31 16:04
임프랍니다.

다음과 같이 하세요.

void __fastcall TForm1::OnlineStatusClick(TObject *Sender)
{
    TForm* form = new TForm(Form1);
    form->FormStyle = fsNormal;
    form->BorderStyle = bsNone;
    form->Width = Form1->Width;
    form->Height = 150;
    form->Visible = true;
    form->OnClose = NewFormClose; // 새폼이 닫힐 때 자동으로 free되도록 핸들러를 달아주자~

    // 여기다가 요렇게~ ^^;;
    TButton *Button = new TButton(form); // 새폼 위의 새 버튼 생성, Owner를 지정했으므로 폼이 파괴될 때 함께 파괴됨
    Button->Parent = form;
    Button->Caption = "눌러봐!";
    Button->SetBounds(100, 50, 60, 30);
    Button->OnClick = NewButtonClick; // 폼 닫기 핸들러를 달아주자~
}

void __fastcall TForm1::NewFormClose(TObject *Sender, TCloseAction &Action)
{
    Action = caFree; // 닫힐 때 자동으로 free되어부러라!
}

void __fastcall TForm1::NewButtonClick(TObject *Sender)
{
    dynamic_cast<TForm *>(dynamic_cast<TButton *>(Sender)->Parent)->Close();
    // 넘어온 Sender는 실제로 버튼이므로 버튼으로 캐스팅후 그 패어런트를 다시 폼으로 캐스팅,
    // 캐스팅된 폼에서 Close() 호출.
    // 여기선 기본 캐스팅을 해도 상관없지만.. 그냥 멋부린다고 해봤음.
}

그럼 이만...


정원희 님이 쓰신 글 :
: 안녕하세요...
:
: 폼에 버튼을 하나 달고, 그 버튼을 클릭했을때 임의로 윈도우를 생성하고, 만들어진 윈도우의
: 클릭이벤트 발생시 그 윈도우를 닫아버릴려고 하는데...
: 어떻게 하는지를..ㅡ.ㅡ;;
:
: 아래에서 버튼 클릭이 눌러졌을때 임의로 창을 만들어서 띄우는거 까지는 쉬운데...
: 저 밑의 form 에다가 클릭이벤터를 어떻게 추가하는지를 모르겠네요.
:
: 미리 폼을 만들어서 추가해 넣으면 되긴 되겠지만, 꼭 수동으로 생성하고 이벤트 추가를 해보고
: 싶어서요...
:
: void __fastcall TForm1::OnlineStatusClick(TObject *Sender)
: {
:     TForm* form = new TForm(Form1);
:     form->FormStyle = fsNormal;
:     form->BorderStyle = bsNone;
:     form->Width = Form1->Width;
:     form->Height = 150;
:     form->Visible = true;
:
:     // 여기다가 뭘 어떻게? ㅡ.ㅡ;;
:
: }
:
: 부탁드림다. ^_^

+ -

관련 글 리스트
10496 임의의 윈도우를 생성해서 이벤트 추가하기..? ㅡ.ㅡ;; 정원희 888 2001/08/31
10498     Re:임의의 윈도우를 생성해서 이벤트 추가하기..? ㅡ.ㅡ;; 박지훈.임프 987 2001/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.