Q&A

  • RxRichEdit의 maxLength 문제입니다.
RxRichEdit에서요

음...

maxLength를 100 이라고 지정했더니 영문과 숫자는

상관없지만.. 한글도 100글자가 들어가는 것이 문제입니다.

물론 한글 50자 이상 넣고 프로그램을 돌리면 바로 에러나고

프로그램 종료에, 심하면 컴퓨터를 꺼야 되는 상황이 발생 하더라구요..



키프레스 이벤트에 Length(editor.Text) > 100 then key:= #0; 라고 해도

이건 막무가내더군요.. 영문은 위의 루틴을 먹지만 한글은 그대로

100글자 까지 들어 갑니다. 지금와서 보통의 메모컴포넌트로 바꿀수는

없습니다.



처리할수 있는 방법이 없을까요?

살려 주십시요.. 아주 급한 것이라..



저 짤립니다.

원하신다면 술한잔 거하게 사지요..

1  COMMENTS
  • Profile
    한대필 2000.08.25 23:01
    역시 델파이를 많이 써 봐야 하는가 봅니다.

    '사장님 모르겠습니다.' 했더니 '임마! 이렇게 해봐..' 라고 하시더군요



    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글자 까지 들어 갑니다. 지금와서 보통의 메모컴포넌트로 바꿀수는

    > 없습니다.

    >

    > 처리할수 있는 방법이 없을까요?

    > 살려 주십시요.. 아주 급한 것이라..

    >

    > 저 짤립니다.

    > 원하신다면 술한잔 거하게 사지요..