|
안녕하세요.
프로젝트에서 C++ 빌더 6.0의 TCspinEdit를 사용하는 일이 생겼는데 에디터 란을 공란으로 두고 Up/Down 이벤트 발생시키면 EConvertError 발생하네요.
빌더내의 Example 소스중에 CSpinEdit에 관한게 있어서 살펴보니 아래와 같은 내용이더라고요.
try/catch로 에러 처리를 해서 실제로 동작은 제대로 하는데 에러메시지가 나오니 영 보기 안좋네요 -_-;
하다 못해 Example 코드를 어떻게 손대서 lib에 넣을 수 있으면 어떻게든 될거 같습니다만... 하는 방법을 모르겠네요.
그러니까 질문은 두가지 입니다.
1. EConvertError가 발생하더라도 화면에 경고메시지 뿌리지 않는 방법이 있습니까?
2. 아래의 소스 코드를 따로 컴파일 해서 기존의 라이브러리를 대체 할 수 있는 방법이 있습니까?
ps. 라이브러리 자료실의 Rxlib인가도 받아서 해봤는데 똑같더라고요-_-;;
Up/Down 이벤트 캐치할 수는 있는데 이미 에러나고 잡히니 -_-;
/* CSpin.h 내용 */
__property long Value = {read=GetValue, write=SetValue, nodefault};
/* CSpin.cpp 내용 */
/* UP 이벤트 발생 */
void __fastcall TCSpinEdit::UpClick(TObject *Sender)
{
if (ReadOnly)
MessageBeep(0);
else Value += FIncrement;
}
/* Down 이벤트 발생 */
void __fastcall TCSpinEdit::DownClick(TObject *Sender)
{
if (ReadOnly)
MessageBeep(0);
else
Value -= FIncrement;
}
/* Value read */
long __fastcall TCSpinEdit::GetValue(void)
{
long Result;
try {
Result = Text.ToInt(); /* <- Convert Error 발생 */
}
catch(...) {
Text=AnsiString((int)FMinValue);
return FMinValue;
}
return Result;
}
|