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
[69262] Re:[질문] 델파이 코드에 관해서 여쭙니다.
김도현.누렁소 [nurungso] 560 읽음    2013-03-20 19:22
동작은 잘 하는데 ... 에러가 없을 것 이라는  확신은 없습니다.       

    TForm *pContentForm;

    TFormClass pFormClass;
    TBitBtn *pBtn = (TBitBtn*) Sender;

try {

        switch (pBtn->Tag) {
        case 1:

            pFormClass = FormCableTree->ClassType();;
            break;

        case 2:
            pFormClass = FormMapTree->ClassType();
            break;

        default:
            pFormClass = FormCableTree->ClassType();
            break;

        }

        if (PanelContent->ControlCount == 0 || (dynamic_cast<TForm*>(PanelContent->Controls[0])->ClassType() != pFormClass)) {

            // 내용을 비운다
            if (PanelContent->ControlCount > 0) {
                delete PanelContent->Controls[0];
            }

            if (pFormClass) {

                Application->CreateForm(pFormClass, &pContentForm);
                pContentForm->BorderStyle = bsNone;
                pContentForm->Hide();
                pContentForm->Parent = PanelContent;
                pContentForm->Align = alClient;
                pContentForm->Show();

            }

        }

    }
    __finally {

    }




초보 님이 쓰신 글 :
: 아래와 같은 델파이코드를 CBuilder 코드로 바꿔주시면 감사하겠습니다.
:
: procedure TMainForm.DemoButtonClick(Sender: TObject);
: var
:   NewDemoClass: TFormClass;
:   NewDemo: TForm;
:
: begin
:   case (Sender as TSpeedButton).Tag of
:     0:
:       NewDemoClass := TSpeedForm;
:     1:
:       NewDemoClass := TGeneralForm;
:     2:
:       NewDemoClass := TPropertiesForm;
:     3:
:       NewDemoClass := TVisibilityForm;
:     5:
:       NewDemoClass := TGridForm;
:     6:
:       NewDemoClass := TDrawTreeForm;
:     7:
:       NewDemoClass := TAlignForm;
:     8:
:       NewDemoClass := TWindowsXPForm;
:     9:
:       NewDemoClass := TNodeForm;
:     10:
:       NewDemoClass := THeaderOwnerDrawForm;
:   else
:     NewDemoClass := nil;
:   end;
:
:   if (ContainerPanel.ControlCount = 0) or not (ContainerPanel.Controls[0] is NewDemoClass) then
:   begin
:     if ContainerPanel.ControlCount > 0 then
:       ContainerPanel.Controls[0].Free;
:
:     if Assigned(NewDemoClass) then
:     begin
:       NewDemo := NewDemoClass.Create(Self);
:       NewDemo.Hide;
:       NewDemo.BorderStyle := bsNone;
:       NewDemo.Parent := ContainerPanel;
:       NewDemo.Align := alClient;
:       NewDemo.Show;
:     end;
:   end;
: end;

+ -

관련 글 리스트
41993 [질문] 델파이 코드에 관해서 여쭙니다. 초보 887 2005/09/22
69262     Re:[질문] 델파이 코드에 관해서 여쭙니다. 김도현.누렁소 560 2013/03/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.