Q&A

  • [질문하나더]richedit 를 이용한 메모장에서 커서위치에서 다음줄로 이동
또..비슷한 질문을 하게 되었네요..



어떤 이벤트를 주면 커서위치를 다음줄로 이동해서



문서를 출력하고 싶습니다..



어떻게 해야 할까요?



다시 한번 고수님들의 답변을 기다립니다..



그럼..

1  COMMENTS
  • Profile
    이재식 2000.02.14 23:31
    김성훈 wrote:

    > 또..비슷한 질문을 하게 되었네요..

    >

    > 어떤 이벤트를 주면 커서위치를 다음줄로 이동해서

    >

    > 문서를 출력하고 싶습니다..

    >

    > 어떻게 해야 할까요?

    >

    > 다시 한번 고수님들의 답변을 기다립니다..

    >

    > 그럼..



    이재식 Wrote :

    안녕하세요?



    가령, 아래의 소스는 버튼1을 클릭하면 richEdit박스의 현재커서위치에서

    다음위치로 내려가 문자을 출력할 것입니다.



    procedure TForm1.Button1Click(Sender: TObject);

    var

    LineIndex : integer ; // 현재커서가 있는 라인번호를 구함 - 0부터 시작

    LineTotal : integer ; // 전체 데이터의 라인수

    begin

    LineIndex := RichEdit1.Perform (EM_LINEFROMCHAR, -1, 0) ;



    LineTotal := RichEdit1.Perform(EM_GETLINECOUNT, 0, 0) ;



    if LineIndex = LineTotal - 1 then //현 커서가 맨끝에 있다면,

    RichEdit1.Lines.Add (Edit1.Text)

    else

    begin // 현커서가 맨끝에 없으면 다음라인에 데이터를 씁니다.

    RichEdit1.Lines[LineIndex+1]

    := Edit1.Text + RichEdit1.Lines[LineIndex + 1] ;

    // 만약 다음라인에 데이터가 있다면 그 데이터를 유지시켜줍니다.



    end ;



    RichEdit1.SetFocus ; // 커서가 보일 것입니다.



    이상은 버튼 1클릭시 다음라인으로 이동하여 데이터를 출력하는 것입니다.

    사실, 위 소스에서는 다음라인으로 이동하라는 명령은 없습니다.

    그러나, 그런 효과를 보일 것입니다. 실제로 커서가 다음라인으로 이동할테니까요.