Q&A

  • 메모장에서 상태바에 칼럼 및 라인수넣기
안녕하세요?



메모장을 만들고 있습니다.



메모에 상태바를 집어넣고 더블클릭하면 거기서 칸을 나누게 되어있던데 여기에다가 흔히 메모장에서 볼 수 있는 현재 라인 번호와 칼럼 번호를 알고 싶습니다.



ps)어떻게 해서 아래와 같이 해봤습니다. 건데 한 번 이동하고 다시 앞으로 가면 숫자가 변하지 않고 그대로 있어요. 그리고 첨 숫자가 1,1 부터 시작되어야 하는데 0,0부터 되구요.



답변 부탁드립니다.



꼭 좀~ 그럼 행복하세요..



begin

StatusBar1.Panels.Items[1].Text:=IntToStr(Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0));

Num:=strToint(StatusBar1.Panels.Items[1].Text) ;

StatusBar1.Panels.Items[0].Text:=IntToStr(Memo1.SelStart-Memo1.Perform(EM_LINEINDEX,Num, 0));

end;







1  COMMENTS
  • Profile
    이만준 1999.12.05 22:20
    김완태 wrote:

    > 안녕하세요?

    >

    > 메모장을 만들고 있습니다.

    >

    > 메모에 상태바를 집어넣고 더블클릭하면 거기서 칸을 나누게 되어있던데 여기에다가 흔히 메모장에서 볼 수 있는 현재 라인 번호와 칼럼 번호를 알고 싶습니다.

    >

    > ps)어떻게 해서 아래와 같이 해봤습니다. 건데 한 번 이동하고 다시 앞으로 가면 숫자가 변하지 않고 그대로 있어요. 그리고 첨 숫자가 1,1 부터 시작되어야 하는데 0,0부터 되구요.

    >

    > 답변 부탁드립니다.

    >

    > 꼭 좀~ 그럼 행복하세요..

    >

    > begin

    > StatusBar1.Panels.Items[1].Text:=IntToStr(Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0));

    > Num:=strToint(StatusBar1.Panels.Items[1].Text) ;

    > StatusBar1.Panels.Items[0].Text:=IntToStr(Memo1.SelStart-Memo1.Perform(EM_LINEINDEX,Num, 0));

    > end;

    >

    >

    >



    예전에 썼던건데..

    참고하세요..



    var CharPos: TPoint;

    iLineCount : Integer;

    begin

    CharPos.Y := SendMessage(RichEdit1.Handle, EM_EXLINEFROMCHAR, 0,

    RichEdit1.SelStart);

    iLineCount := SendMessage(RichEdit1.Handle, EM_GETLINECOUNT, 0, 0);

    CharPos.X := (RichEdit1.SelStart -

    SendMessage(RichEdit1.Handle, EM_LINEINDEX, CharPos.Y, 0));

    Inc(CharPos.Y);

    Inc(CharPos.X);

    StatusBar1.Panels[0].Text := '전체줄: ' + IntToStr(iLineCount);

    StatusBar1.Panels[1].Text := '현재줄: ' + IntToStr(CharPos.Y) ;

    StatusBar1.Panels[2].Text := '칸: ' + IntToStr(CharPos.X);