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
[55854] Re:프로그램에서 글꼴을 한꺼번에 바꾸는 법 혹시 아시는 분..?
남병철.레조 [lezo] 1262 읽음    2009-01-21 10:24
기본적으로 부분 조작을 할 경우 코딩이 필요합니다.
보통 IDE의 Parent 관련 관계를 조정하여 일관성을 유지하는데 그렇지 못하면 직접 지정해 주어야합니다.
다만 그나마 아래처럼 찾아서 지정해주면 일관성이 좀 나아질듯합니다.

폼의 인스턴스(this)를 TWinControl로 타입 케스팅해서 pFormCtrls이라고 가정합니다.
TClass ClassType;
TWinControl* pCtrl = NULL;
TList* pList = new TList();
TWinControl* pFormCtrls = (TWinControl*)this;

폼에 있는 컨드롤을 가져옵니다.
pFormCtrls->GetTabOrderList( pList );

아래 내용을 아이템 수 만큼 루프 돌면서 자신이 원하는 컨트롤을 찾아서 폰트를 변경합니다.
pCtrl = (TWinControl*)pList->Items[ 0 ];
ClassType = pCtrl->ClassType();
AnsiString aClassName = ClassType->ClassName();
if ( aClassName == "TEdit" ) {
    TEdit *pEdit = (TEdit*)pCtrl;
    pEdit->Font->Name = "굴림";
}

ps.
위의 경우 TWinControl을 사용했지만 포커스가 없는 컨트롤의 경우 Controls[]에 접근하셔서
위의 방식으로 클래스 이름을 가져와 타입케스팅하여 지정할 수 있습니다.
(ex>pFormCtrls->Controls[0]->ClassName();)



이양반이~~ 님이 쓰신 글 :
: 제가 만든 프로그램에서 각 컴포넌트의 글꼴을 한꺼번에 바꿀 수 있는 방법이 있나요???
:
: 아니면 각 컴포넌트마다 ...
:
: Form1->Font->Name = "궁서체"  
: Label1->Font->Name = "궁서체"
: Button->Font->Name = "궁서체"
:
: 이런식으로 일일이 나열을 해서 바꿔야 하나요..
:
: 저는 각 컴포넌트의 Font Name만 바꾸고 싶습니다. 크기랑 색깔은 그냥 두고요
:
: 그럼 좋은 하루 되시고, 제가 워낙 초보라 되도록 상세한 설명을 부탁드립니다. ^^;

+ -

관련 글 리스트
55831 프로그램에서 글꼴을 한꺼번에 바꾸는 법 혹시 아시는 분..? 이양반이~~ 1189 2009/01/19
55867     Re:프로그램에서 글꼴을 한꺼번에 바꾸는 법 혹시 아시는 분..? 김동욱 1263 2009/01/21
55854     Re:프로그램에서 글꼴을 한꺼번에 바꾸는 법 혹시 아시는 분..? 남병철.레조 1262 2009/01/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.