|
저한테는 ggAD0게이지 콤포넌트도없고 TBMSpinEdit도 없기때문에
원론적인 코딩 스타일 방법과 디버깅 방법에 대해서만 말씀드릴께요
: ggAD0->Value = ((TBMSpinEdit *)FindComponent("BMSpinEdit1"))->Value;
이와 갈은 코딩은 별로 좋은게 아닙니다.
FindComponent함수에서 제대로 포인터를 리턴할지 알수 없고
혹시 BMSpinEdit1이 없어서 NULL을 리턴한다면
"->Value" 참조하면서 프로그램 죽기 딱 알맞습니다.
그리고 FindComponent 같은 함수에서 리턴 받은 객체 포인터에 대한 참조는 브레이포인트 멈추고
값을 확인하는 디버깅 방법이 잘 안됩니다.
아래와 같이 포인터를 먼저 받고 edt포인터 확인하고
Value 확인해보세요
TBMSpinEdit * edt = ((TBMSpinEdit *)FindComponent("BMSpinEdit1"));
if( edt )
{
ggAD0->Value = edt->Value;
}
Value 값이 변화가 없다면...
TBMSpinEdit 자체의 값이 왜 안변하는건지 확인하셔야 합니다.
실제 BMSpinEdit1->Value 가 안변하는건지
아니면 FindComponent로 했을때만 안변하는건지
BMSpinEdit1->Value 자체가 안변한거라면 콤포넌트의 이벤트 같은 사용법을 좀더 확인해보셔야 할듯하네요
대마두 님이 쓰신 글 :
: 지금 제가 수정하는 프로그램에
:
: ggAD0->Value = ((TBMSpinEdit *)FindComponent("BMSpinEdit1"))->Value;
:
: 이런 라인이 있습니다
:
: 여기서 ggAD0는 게이지컴포넌트로 Value에 있는 값을 게이지처럼 그래픽화해서 보여주는 것이구요
:
: 이 Value값을 BMSpinEdit1의 Value값으로 바꿔 BMSpinEdit1의 값을 그래픽화 해서 보여주고 싶은데요...
:
: 값이 안나오네요...
:
: 이 라인에 브레이크 포인트를 찍어
:
: BMSpinEdit1의 값을 주고
:
: ((TBMSpinEdit *)FindComponent("BMSpinEdit1"))->Value 값을 보면 그냥 0으로 나옵니다...
:
: FindComponent 가 값을 못읽어 오는건지...
:
: 원래 이렇게 사용이 안되는건지 모르겠네요....
:
: 어떻게 하면 값을 받을수 있을지 알려주세요
|