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
[74399] Re:[질문] 같은 기능을 하는 하나의 클래스에 서로 다른 2개 폼 사용하는 방법은?
빌더(TWx) [builder] 424 읽음    2017-06-03 22:03
Gaeseong Park 님이 쓰신 글 :
: 안녕하십니까, 아직 C++ 빌더에 익숙치도 C++에도 익숙치 않은 개발자입니다.
:
: 제가 이렇게 회원가입을 하고 처음으로 글을 남기게 된 것은 쥬니어급 프로그래머 혼자(저)서 20여년 전에 개발된 프로그램을 업그래이드 하기 위해서입니다. 먼저 질문을 하게된 핵심 기능의 요구사항은 아래와 같습니다.
:
: 같은 기능을 하는 화면을 보다 세련되게 바꾸는 작업을 해서 2개의 프로그램버전 (ex 6.4 => 7.2) 이 있는데 이제 최신 버전(Ex 7.3)에서 6.4 화면UI 디자인에 익숙한  사용자들을 7.3으로 Update하면서도 거부감 없이 사용하게 하기 위해서입니다.
:
: 혼자 고민을 하다보니 이런 저런 생각이 나기는 하지만 프로그램이 C++ builder 6를 사용해서부터 만들다가 2010으로 마이그레이션을 했고 두개 버전이 따로 가는 것 보다는 하나로 합치고자 UI디자인을 사용자가 Rㅕn Time에 고를 수 있도록 (여타 프로그램의 테마기능 참고) 해 보고자 하였는데 좋은 아이디어 있으면 조언 부탁드립니다.
:
: 먼저 제가 생각해 본 사항들과 제약사항입니다. (틀릴 수 있으니 아래 부분에서 잘못된 부분도 지적해주면 감사히 배우겠습니다.)
:
: 1. 2개의 dfm파일을 하나의 Unit이 가질 수 있게 하는 것 -> 런타임에 폼 결정되는게 아니다.
: 아래의 링크를 자료조사시 찾아보았지만 컴파일 타임에 폼을 결정하는 것 같은데 확실치가 않습니다.
: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tutorial&no=218
:
: 2. unit을 추가 하여 추가한 유닛의 이름을 예전테마로 알맞게 이름을 바꾸고 Code를 연결하여 사용하는 방식
: => Code의 연결이 가능한지? 가능하다면 어떻게 하는지 기술적으로 난해함 (본인에게)
:
: 3. 상속을 이용
: Form을 상속받는 방법을 활요 해 보려고 하였습니다 => 이 부분도 기술이 부족하여 난해합니다.
:
: 4. 하나의 dfm파일에 UI컨트롤을 복사 붙여넣기하여 하드코딩으로 위치 변경하여 디자인만 바꾸기
: => dfm파일이 지저분해지고 수정이 용이하지 않으며 하드코딩이 많아져서 지양함.
:
:
: 기존의 Code가 양도 많을 뿐 아니라 함수화 모듈화가 잘 되어있지 않은 상황이라 어디서부터 어떻게 손을 대야  짦은 시간안에 효율적으로 Thema기능을 구현하여 2개의 Form을 번갈아 보여줄 수 있을지 많은 조언 부탁드립니다.



답변:

오브젝트 인스펙터를 이용해서 폼 디자인시에 생성된 .dfm 파일들은 rc 컴파일 과정을 거쳐서 실행파일 바이너리의
리소스 섹션에 같이 링크되게 됩니다.

왜 그렇게 복잡하게 생각하는 건지 이해가 안되네요?
Theme API를 이용하면 쉽게 해결 할 수 있을 텐데.... MS 사이트에서 Theme API를 찾아 보세요.

+ -

관련 글 리스트
74385 [질문] 같은 기능을 하는 하나의 클래스에 서로 다른 2개 폼 사용하는 방법은? Gaeseong Park 400 2017-06-01
74399     Re:[질문] 같은 기능을 하는 하나의 클래스에 서로 다른 2개 폼 사용하는 방법은? 빌더(TWx) 424 2017-06-03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.