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
[50934] Re:Re:컴포넌트 만들 때 TFont의 값들은 어떻게 저장해야 하는지....???
박영목 [] 1586 읽음    2007-10-18 18:40
문제 다 해결했습니다....  ㅋㅋㅋㅋ 

2번째 답변을 올린,  즉  stored=  <-- 이 놈을 true로 하니까?
*.dfm 파일에   :     GGPercentFont.Charset = DEFAULT_CHARSET, ... 등  내용이 들어갈 때
이미 잘 동작하고 있었던 것인데...

제가 최적화를 좋아해서... C++Builder 아니 델파이 아니 윈도우즈
특성을 생각지 않고 논리적으로 이렇게 하면 좋겠다... 생각하고
처음 Paint가 될 때   HFONT가 NULL이면  CreateFont로 생성하고  <-- API로 찍어려고.. 빌더도 되던데... 숙달 미숙 ㅋㅋㅋ
그 다음 부터는 이 안으로 들어가지 않게 해 둔 것이 문제 였습니다.

그런데 이 프로그램 실행하면 Font의 Defalut 크기인 8을 먼저 2번 정도 Paint안으로 들어오고
3번째 와서 디자인시  지정한 참 값이 들어왔습니다.  윈도우 크기 변경(RESIZE), 보이기(SHOW) 등 때 아마
폰트 사이즈가 8로 찍힌 것으로 보입니다....  우.... 짜증.... 이것 때문에 오늘 하루 다 보냈내요....

읽어봐 주신 분들께 감사......

이게 안되어서....  다시 TControl에서 상속받아 해보고 , TGraphicControl( TCGaue의 엄마 ) 도 해보고
property 표현 잘 몰라 Delphi 소스 보고 ㅋㅋㅋ 감을 잡고....    온갖 고생 다 했네요.....
다 된 것을.....  이제 많이 늙었나???  ㅋㅋㅋㅋㅋㅋ

박영목....   물러갑니다......   씽.....~~~~   ㅋㅋㅋㅋㅋ




박영목 님이 쓰신 글 :
: __property Graphics::TFont* GGPercentFont = {read=FTextFont, write=SetFont, stored=true };  //IsFontStored};
:
: stored=  <-- 이 놈을 true로 하니까?  *.dfm 파일에
:
:     GGPercentFont.Charset = DEFAULT_CHARSET
:     GGPercentFont.Color = clWindowText
:     GGPercentFont.Height = -32
:     GGPercentFont.Name = 'MS Sans Serif'
:     GGPercentFont.Style = []
:
:     이런식으로 들어가는 군요...  ㅋㅋㅋㅋ
:
:     그런데 불러오는 것은 어떻게 해야 하는지....
:
: __fastcall TUserColorGauge::TUserColorGauge(TComponent* Owner)
:         : TCustomControl(Owner)
: {
:    FTextFont = new Graphics::TFont();
: :
: :
:    이렇게 하면 기본 디폴트로 들어가 버리는 데...
:    이 뒤편에서 자동이던 수동이던 해 주어야 할 것 같은데.....
:
:    아시는 분 부탁해요......         ........
:
:
:
:
:    
:
:
: 박영목 님이 쓰신 글 :
: : TextHeight = 13
: :   object UserColorGauge1: TUserColorGauge
: :     Left = 40
: :     Top = 112
: :     Width = 753
: :     Height = 121
: :     GGMaxValue = 100
: :     GGProgress = 48
: :     GGForeColor = clGreen
: :     GGForeTextColor = clWhite
: :     GGBackColor = 14737632
: :   end
: :   object FlashBitBtn1: TFlashBitBtn
: :     Left = 392
: :     Top = 344
: :     Width = 75
: :     Height = 25
: :     Caption = 'FlashBitBtn1'
: :     Font.Charset = DEFAULT_CHARSET
: :     Font.Color = clRed
: :     Font.Height = -11
: :     Font.Name = 'MS Sans Serif'
: :     Font.Style = []
: :     ParentFont = False
: :     TabOrder = 1
: :     OnClick = FlashBitBtn1Click
: :     About = 'Eryto Milanski'
: :     Font2ndColor = 8
: :   end
: : end
: :
: : void __fastcall TUserColorGauge::SetFont(Graphics::TFont* Value)
: : {
: :   FTextFont->Assign( Value );
: : }
: :
: :
: : 컴포넌트를 간단한 것만 만들어 보다가... 이번에 TFont를 사용하는 컴포넌트를 만들게 되었는데
: : TUserColorGauge  이런 컴포넌트 만들었습니다. Gauge인데.... 글자 %가 XOR로 나와서 내가 원하는 색으로 나오게 하기 위해
: : TCustomControl을 상속받아 만들었습니다.  뭐 동작은 잘 합니다... ㅋㅋㅋ
: : 그런데....  Graphics::TFont* FTextFont;에 있는 폰트의 값들이 저장되지 않습니다.
: :
: : 위의 폼의 내용을 보면
: :     GGMaxValue = 100
: :     GGProgress = 48
: :     GGForeColor = clGreen
: :     GGForeTextColor = clWhite
: :     GGBackColor = 14737632
: :  이런 것들은 보이는데.....  그리고 다시 읽어도 값이 잘 들어오고... 실행해도 디자인할 때 지정한 값으로 잘 되는데...
: : TFont의 값은 저장되지 않는군요,....
: :
: :     Font.Charset = DEFAULT_CHARSET
: :     Font.Color = clRed
: :     Font.Height = -11
: :     Font.Name = 'MS Sans Serif'
: :     Font.Style = [] 
: :
: :     아래 것과 같이 이런 씩으로 저장되어야 할 것 같은데......
: :
: :     간단할 것 같은데.....  모르겠음.....  아시는 분 부탁드립니다.

+ -

관련 글 리스트
50927 컴포넌트 만들 때 TFont의 값들은 어떻게 저장해야 하는지....??? 박영목 1177 2007/10/18
50930     Re:컴포넌트 만들 때 TFont의 값들은 어떻게 저장해야 하는지....??? 박영목 1302 2007/10/18
50934         Re:Re:컴포넌트 만들 때 TFont의 값들은 어떻게 저장해야 하는지....??? 박영목 1586 2007/10/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.