Q&A

  • TMemo에 관한질문입니다.
화면에서 메모를 사용중에

1. 메모에 입력된 글자가  총 얼마의 바이트를 넘게 되면 더이상 입력되지 않케 하는 방법

2. 그리고 한 라인상 몇바이트 이상 넘길시에 다음라인으로 넘어가는 방법을
몰라서 몇일동안 해매고 있습니다.--;

예전 Q&A를 찾아봐도 해답을 잘 못찾겠네요..델파이 시작한지 얼마안된 초보라..-_-; 간단한 예를 들어주시면 더욱 감사드리구요,
답변부탁드립니다.  
1  COMMENTS
  • Profile
    타락천사 2002.10.22 01:58
    안녕하세여. 타락임다..

    우선 첫번째 방법은

    procedure TFrmMain.Memo1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Length(Memo1.Text) > 20 then
        Key := #0;
    end;

    와 같이 하면 됩니다. 코드를 보면 아시겠지만, 텍스트 사이즈가 20이 넘으면 아무 키도 안먹습니다. backspare 등의 다른 키를 먹게 하려면 Key 값을 검사하면 되겠죠..

    두번째 방법은... 졸라 어렵습니다..ㅡㅡ;;

    먼저 현제 커서가 위치한 Row 를 얻어야 합니다.

    Row := Memo1.Perform(EM_LINEFROMCHAR, -1, 0);

    으로 Row 를 얻습니다.

    그리고 위와 같이 KeyPress 이벤트에서 Length(Memo1.Lines[Row]) 값을 얻어서 일정 바이트 이상 넘으면 Memo1.Lines.Add() 하시면 됩니다.

    만약 특정 라인으로 옮기고 싶다면..

    SelStart := Memo1.Perform(EM_LINEINDEX, Row, 0);

    과 같이 하면 됩니다.

    즐푸하세여..

    타락천사..