C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[18361] 멋진 RTTI
망치 [mangchy] 3838 읽음    2010-06-30 11:14
RTTI가 있는줄은 알고 있었지만 사용해보니 정말 멋지네요.
2010 빌더에서 사용했는데
xml파일에  아래와 같이 저장했다가

  <Project>
    <EditRepository>
      <TcxEditRepositoryMemoItem>
        <Name>RepDescriptMemoItem</Name>
      </TcxEditRepositoryMemoItem>
      <TcxEditRepositoryProgressBar>
        <Name>RepPorgressBarItem</Name>
      </TcxEditRepositoryProgressBar>
    </EditRepository>
    <TcxCategoryRow>
      <Height>-1</Height>
      <Properties>
        <Caption>General</Caption>
      </Properties>
      <ChildRow>
        <TcxEditorRow>
          <Properties>
            <Caption>Project Name</Caption>
            <Value>테스트 프로젝트</Value>
          </Properties>
        </TcxEditorRow>
        <TcxEditorRow>
          <Properties>
            <Caption>Company</Caption>
            <Value>회사이름</Value>
          </Properties>
        </TcxEditorRow>
        <TcxEditorRow>
          <Properties>
            <Caption>Worker</Caption>
            <Value>홍길동</Value>
            <RepositoryItem></RepositoryItem>
          </Properties>
        </TcxEditorRow>
        <TcxEditorRow>
          <Properties>
            <Caption>Description</Caption>
            <Value>프로젝트 테스트</Value>
            <RepositoryItem>RepDescriptMemoItem</RepositoryItem>
          </Properties>
          <Height>150</Height>
        </TcxEditorRow>
      </ChildRow>
    </TcxCategoryRow>
  </Project>


이 정보들을 런타임시에 DevExpress의 VerGrid에 로딩할수 있으니 너무너무 좋은거 같습니다.
아직 완벽하게 RTTI로만 이용한건 아니지만...그래도 저번에 Lua스크립트를 알고 난 이후로
또 하나의 세계가 열리는군요.

간단하게 RTTI 테스트 하자면,
SetPropValue(Form1, "Caption", "Test");
이런식으로...
망치 [mangchy]   2010-06-30 12:01 X
위에것을 RTTI를 사용안하고 하면...
TcxCustomRow* row;
row = (TcxEditorRow*)VerticalGrid->Add(__classid(TcxEditorRow));
row->Properties->Caption = "Test";
row->Properties->Value = "테스트";
Lyn [tohnokanna]   2010-06-30 19:09 X
그것도  RTTI 를 사용한겁니다...
__classid는 RTTI 가 있어야만 작동 하거든요
망치 [mangchy]   2010-06-30 23:13 X
그런거였군요...

+ -

관련 글 리스트
18361 멋진 RTTI 망치 3838 2010/06/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.