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
[23639] Mdi Program에서 특정 Type의 Form만 Reset하고 싶은데....
장성호 [nasilso] 611 읽음    2003-01-14 12:00
안녕하세요
bcb를 시작한지 3달째 아직 vcl에 대해서 모르는 것이 너무 많네요

MDI 프로그램을 하나 하고있습니다.

TForm을 상속받은 TFormST라는 폼 플래스를 만들고
TFormST폼에 vitual로 여러가지 함수와 꼭필요한 컴포넌트를 끌여다 놓았습니다.

그리고 TFormST를 상속받아
TFormA
TFormB
TFormC
등의 폼을 만들었습니다.

FormA,FormB,FormC는 TFormST를 상속받았기때문에
TFormST의 함수나 컴포넌트 속성들을 마음대로 이용할수 있죠
그리고 FormA,FormB,FormC에서는 TFormST에서 vitual로 선언된 함수를
그 폼의 특성에 맞게 오버라이딩(?) 시켜서 사용합니다.

Main폼이 있구 FormA,FormB,FormC등의 폼은 Main폼의 MdiChild폼입니다.

제가 하고자 하는것은 FormA,FormB,FormC형의 TFormST를 상속받은 폼이
지금 MDIChild에 있다면 그것을 모두 Reset 시켜주고자 합니다.

문론 TFormST에 Reset이라는 vitual함수가 있구요 FormA,FormB,FormC엔
각 폼에 맞게 Reset함수를 만들어 두었구요

그러니까 Main폼의 MdiChild중에서 TFormST를 상속받아 만들어진 폼을 모두 찾아서
Reset시켜 주고자 합니다.
지금은 대충 아래와 같이 처리하고있느데
같은형의 폼 그리니까 TFormA형의 Form이 두개이상이면 제대로 되지 않는것 같아요

for(int i=0;i<MainForm->MDIChildCount;i++)
    {
          if(MainForm->MDIChildren[i]->Name=="FormA")
          {
               ((TFormST *)(MainForm->MDIChildren[i]))->Reset();
          }
           else if(MainForm->MDIChildren[i]->Name=="FormB")
          {
               ((TFormST *)(MainForm->MDIChildren[i]))->Reset();
          }
           else if(MainForm->MDIChildren[i]->Name=="FormC")
          {
               ((TFormST *)(MainForm->MDIChildren[i]))->Reset();
          }
    }

질문

그러니까 MDIChild폼중에서 그 ClassType을 알고싶습니다.
그리고 상속폼의 Type을 알고도 싶구요
음 그러니까 MDIChild중에서 TFormST 폼을 상속받은 폼만 찾을수 있는 직관적인
방법이 없을까요?

그러니까 아래와 같은식의 코드를 찾습니다.
for(int i=0;i<MainForm->MDIChildCount;i++)
    {
          if(MainForm->MDIChildren[i]->ClassType=="TFormST")//이부분에 적절한 코드를
          {
               ((TFormST *)(MainForm->MDIChildren[i]))->Reset();
          }
     }




+ -

관련 글 리스트
23639 Mdi Program에서 특정 Type의 Form만 Reset하고 싶은데.... 장성호 611 2003/01/14
23645     Re:Mdi Program에서 ... 그냥 ClassName으로 했음다... 장성호 975 2003/01/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.