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
[71261] Re:Re:컴포넌트 프로퍼티의 default 값 설정 오류 (float형, double형)
장성호 [nasilso] 3168 읽음    2014-04-30 11:10
답변 감사합니다.

CBuilder로 똑같이 코딩해서
해당 double형 Property-PropInfo 의  Default값을 0x80000000으로 변경했는데..

여전히 값이 0 인 경우는  dfm에는 저장이 되지 않고 있네요

다른 깔끔하지 못한  꼼수를 써야하나? ㅠㅠ


루도라 님이 쓰신 글 :
: 이상하게 실수값은 default 지정을 하지 않으면 PropInfo 의 Default 가 0 으로 고정되 버리네요. default 에 저장할 수 있는 값이 Integer 이다 보니 실수의 default 를 지정할 수 없어서 그렇게 한거 같은데 그거 때문에 stored 까지는 정상이다가 저장할려고 하는 부분에서 "default 가 0 인가?" 라는 이상한 판별식을 만나면서 0값이 default 가 되버리네요.
:
: 그래서 꼼수로 PropInfo 의 default 를 0x80000000; 로 설정해버리면 default 가 없다고 판별해서 무사히 저장이 됩니다.
:
: 아래는 제가 C++이 설치되어 있지 않아서 델파이로 짠거예요. C++도 비슷하겠죠?
:
: constructor TMyComponent.Create(Owner: TComponent);
: var
:   PropInfo: PPropInfo;
:   Protect: Cardinal;
: begin
:   inherited Create(Owner);
:
:   PropInfo:= GetPropInfo(Self, 'Value1');
:   if VirtualProtect(PropInfo, SizeOf(PropInfo^), PAGE_READWRITE, Protect) then
:   begin
:     PropInfo^.Default:= $80000000;
:     VirtualProtect(PropInfo, SizeOf(PropInfo^), Protect, Protect);
:   end;
: end;
:
: ps. Component 의 constructor 에서 매번 하는거 보다는 유닛의 initialization 에서 한번 해주는게 더 좋을거 같네요.
:
: 장성호 님이 쓰신 글 :
: : 컴포넌트의 float형 프로퍼티의 default값이 0이 아닐때
: : 디자인 타임에 프로퍼티의 값을 Object-Inspector에서  0 으로 설정하면
: : 관련 프로퍼티가 *.dfm에 저장이 되지 않습니다.
: :
: : 다른 데이타 형인 int 형 , enum형 , string형 , bool 형 등의 경우에는 문제가 없는것 같은데요
: :
: : 유독  float 형 double 형은
: :
: : default값 지정이 통하지 않습니다.
: : stored , default 어떤 지시자를 사용해도 0 값은 dfm에 기록이 안되네요
: :
: :
: : float형 double형 프로퍼티의 값이   0 (제로) 일때도 dfm에 저장되게 하고 싶습니다.
: : (default값이 0 이 아니게 설정하고 싶은것입니다.)
: :
: : 해결방법 좀 알려주세요
: :
: :
: : 개발툴  C++Builder2010  , 컴포넌트 소스  cbuilder로 개발
: :
: : 그럼..

+ -

관련 글 리스트
71250 컴포넌트 프로퍼티의 default 값 설정 오류 (float형, double형) 장성호 2858 2014/04/24
71257     Re:컴포넌트 프로퍼티의 default 값 설정 오류 (float형, double형) 루도라 3211 2014/04/28
71261         Re:Re:컴포넌트 프로퍼티의 default 값 설정 오류 (float형, double형) 장성호 3168 2014/04/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.