RxRichEdit에서요
음...
maxLength를 100 이라고 지정했더니 영문과 숫자는
상관없지만.. 한글도 100글자가 들어가는 것이 문제입니다.
물론 한글 50자 이상 넣고 프로그램을 돌리면 바로 에러나고
프로그램 종료에, 심하면 컴퓨터를 꺼야 되는 상황이 발생 하더라구요..
키프레스 이벤트에 Length(editor.Text) > 100 then key:= #0; 라고 해도
이건 막무가내더군요.. 영문은 위의 루틴을 먹지만 한글은 그대로
100글자 까지 들어 갑니다. 지금와서 보통의 메모컴포넌트로 바꿀수는
없습니다.
처리할수 있는 방법이 없을까요?
살려 주십시요.. 아주 급한 것이라..
저 짤립니다.
원하신다면 술한잔 거하게 사지요..
'사장님 모르겠습니다.' 했더니 '임마! 이렇게 해봐..' 라고 하시더군요
TForm1 = class(TForm)
RxRichEdit1: TRxRichEdit;
procedure RxRichEdit1Change(Sender: TObject);
procedure RxRichEdit1Enter(Sender: TObject);
procedure RxRichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
OldText : string;
LastSel : Integer;
{ Private declarations }
public
{ Public declarations }
end;
procedure TForm1.RxRichEdit1Change(Sender: TObject);
var
NewText: string;
begin
NewText := RxRichEdit1.Text;
if Length(NewText) > RxRichEdit1.MaxLength then
begin
RxRichEdit1.Text:=OldText;
RxRichEdit1.SelStart := LastSel;
end
else
OldText := NewText;
end;
procedure TForm1.RxRichEdit1Enter(Sender: TObject);
begin
OldText := RxRichEdit1.Text;
end;
procedure TForm1.RxRichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
LastSel := RxRichEdit1.SelStart;
end;
한대필 wrote:
> RxRichEdit에서요
> 음...
> maxLength를 100 이라고 지정했더니 영문과 숫자는
> 상관없지만.. 한글도 100글자가 들어가는 것이 문제입니다.
> 물론 한글 50자 이상 넣고 프로그램을 돌리면 바로 에러나고
> 프로그램 종료에, 심하면 컴퓨터를 꺼야 되는 상황이 발생 하더라구요..
>
> 키프레스 이벤트에 Length(editor.Text) > 100 then key:= #0; 라고 해도
> 이건 막무가내더군요.. 영문은 위의 루틴을 먹지만 한글은 그대로
> 100글자 까지 들어 갑니다. 지금와서 보통의 메모컴포넌트로 바꿀수는
> 없습니다.
>
> 처리할수 있는 방법이 없을까요?
> 살려 주십시요.. 아주 급한 것이라..
>
> 저 짤립니다.
> 원하신다면 술한잔 거하게 사지요..