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
[13049] Re:위저드컨트롤을 만들고 있는데, 도움이 필요합니다.
김성진.kark [kark] 786 읽음    2001-11-23 17:52
안녕하세요.. 카크랍니다.

솔직히 어떤 상황인지 잘 모르겠군요..^^

몰라도 답변올리는 용기 대단하져..^^ (길게 썼는데 아무런 언급이 없으면

짜증나자나요..)

근데 좀 의아한게, 보통 PageControl에서는 여러개의 TabSheet가 있을때

Next Page, Previous Page가 항상 Enable 되어 있어서 마지막에서 next를

선택하면 젤 처음으로가고..이런 식으로 동작하자나요. 결국..패패루님의

의도를 파악 못한것 같다는 겁니다.. ㅜ.ㅜ

: 이런식으로 같은 타입의 멤버 중 특정 조건에 맞는 것만 선택 가능하게 제
: 한하는 것을 어떻게 처리하는지가 궁금합니다.

이 부분도 좀 의아하지만 콤포넌트를 찾아서 조건에 맞는것을 찾는 정도만이라면

아래와 같이 할수 있겠네요..

  unsigned short i;
  TClass ClassRef;

  for(i=0;i<ComponentCount-1;i++)
  {
     ClassRef = Components[i]->ClassType();

     if(String(ClassRef->ClassName())=="TTabSheet")
     {
        // 원하는 검색조건을 넣으시구..
        if(dynamic_cast<TnWizardPage *>(Components[i])->Name == "nWizardPage1")
           // 조건 제한에 따른 무언가...
     }
  }

다시한번 자세히 설명 올리시면, 많은 분들이 도움을 주실것 같습니다..^^

패패루님 어여 완성하셔서...공개하시는 날이 오길..

수거하세여..

패패루 님이 쓰신 글 :
: 현재 만들고 있는 위저드컨트롤은, TPageControl과 유사한 방식으로
: 동작합니다.
:
: 음.. NewPage를 하면, 새로운 위저드페이지가 삽입되면서, 페이지 위
: 치에 따라 배경 그림과 각종 기본 캡션이 자동으로 그려지는 방식이구
: 요, 각 페이지에는 NextPage와 PriorPage라는 프라퍼티가 있어서
: 이 값이 NULL인 경우 Next버튼이나 Prior버튼이 Disable 처리되는 구조
: 입니다.
:
: 따라서 이 컨트롤을 써서 위저드를 구현할 경우, 라디오버튼 등에 의해
: 페이지 분기가 일어난다는지 하는 액션을 효율적으로 구현할 수 있고
: 아무튼 제가 지금까지 본 위저드컨트롤보다 훨씬 편리할 것 같습니다.
: 완성되면 이 사이트에도 공개할거구요.
:
: 빌더 컴포넌트 제작에 필요한 거의 모든 기술을 다 쓰게 되는것 같네요.
: 저 역시 20여개의 컴포넌트를 만들어봤지만 이런 형태의 컴포넌트는
: 처음이라서 많이 헤매고 있습니다.
:
: 지금 잘 안되는 것은, 각 페이지의 NextPage와 PriorPage 프라퍼티에
: 넣을 수 있는 페이지포인터를 제한하는 것인데,
: 좀 쉽게 설명드리자면, 폼에 PageControl을 2개를 박아 넣고, 각각
: 2개의 TabSheet를 만듭니다.
: 이렇게 하면, Form에는 PageControl1, PageControl2, TabSheet1,
: TabSheet2, TabSheet3, TabSheet4, 여섯개의 멤버가 추가되겠죠.
:
: PageControl1에서 ActivePage프라퍼티의 콤보박스를 선택하면, TabSheet1과
: TabSheet2만 선택이 가능하죠.
: PageControl2에서는 역시 TabSheet3와 TabSheet4만 선택이 가능하구요.
:
: 이런식으로 같은 타입의 멤버 중 특정 조건에 맞는 것만 선택 가능하게 제
: 한하는 것을 어떻게 처리하는지가 궁금합니다.
:
: 제 컨트롤의 이름은 TnWizard이고, 각각의 페이지는 TnWizardPage입니다.
: 이 TnWizardPage의 프라퍼티인 NextPage와 PriorPage는 모두 TnWizardPage*
: 타입의 프라퍼티이구요.
: 프라퍼티의 속성상, 자신의 포인터는 지정할 수 없어야 하고, 페이지가 맨
: 첫페이지이거나 맨 마지막 페이지인 경우에는 각각 PriorPage와 NextPage에는
: NULL만이 들어갈 수 있어야 합니다.
: 현재는 SetNextPage() 메쏘드에서 이를 채크하여 거부하는 구조인데, TPageControl
: 에서 이루어지는 것 처럼 아예 대입할 수 있는 후보목록에서 나오지 않게 하고
: 싶습니다.
: 즉, 맨 처음 페이지에서 PriorPage 프라퍼티의 콤보박스를 선택하면, 선택할 수 있
: 는 페이지포인터가 전혀 없고,
: 두번째 페이지에서는 두번째 페이지의 포인터 외에 다른 페이지의 포인터들이 나열
: 되고...
:
: 어떻게 미리 제한을 거는지 잘 모르겠네요.
: 제 생각엔, TDesigner 클래스를 이용하는 것 같기도 한데..
: 아무튼, 어떻게 하는지 알고 계시다면 알려주시면 고맙겠습니다.
:
: 패패루였슴다.

+ -

관련 글 리스트
13041 위저드컨트롤을 만들고 있는데, 도움이 필요합니다. 패패루 750 2001/11/23
13049     Re:위저드컨트롤을 만들고 있는데, 도움이 필요합니다. 김성진.kark 786 2001/11/23
13051         Re:Re:위저드컨트롤을 만들고 있는데, 도움이 필요합니다. 패패루 834 2001/11/23
13062             프로퍼티 에디터를 만들어야 합니다. 박정모 857 2001/11/24
13068                 제대로 답변 주신게 맞는것 같습니다. ^^ 패패루 776 2001/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.