해당 Exception 은 TRichEditStrings.Insert 함수에서 문자열 등록 후에
캐럿 위치를 나타내는 SelStart 속성과 직접 위치계산+문자열 길이를 이용한 값과 비교 후 다를 경우 발생하게 됩니다.
이 Exception 의 의도대로라면 정말 Out of resource 상태일 때는 문자열이 다 등록이 되지 않았을 것이고 이 경우 발생하게 되는데 이 상황은 계산 오류 같네요.
어쩔 수 없이 피해가셔야 할 듯....
int iLine = RichEdit1->Lines->Add("");
RichEdit1->Lines->Strings[iLine] = "ø";
이렇게 미리 Line 을 잡아주면 Insert 함수를 거치지 않으니 예외 발생하지 않네요.
라이손레종ㅎ 님이 쓰신 글 :
: 안녕하세요~
:
: 조금 있음 퇴근시간이 되어가네요 ^^ 다름이 아니라 질문 요지는 제목과 같은데요..
:
: RichEdit1->Lines->Add(AnsiString().sprintf("특수문자는 안되나요?㎡ ø "));
:
: 이렇게 하면 오류가 납니다.. 특수문자를 제거 하고 하면 잘되는데요 ..
:
: 특수 문자를 같이 사용하는 방법은 없을까요?
|