안녕하세요?
메모장을 만들고 있습니다.
메모에 상태바를 집어넣고 더블클릭하면 거기서 칸을 나누게 되어있던데 여기에다가 흔히 메모장에서 볼 수 있는 현재 라인 번호와 칼럼 번호를 알고 싶습니다.
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;
> 안녕하세요?
>
> 메모장을 만들고 있습니다.
>
> 메모에 상태바를 집어넣고 더블클릭하면 거기서 칸을 나누게 되어있던데 여기에다가 흔히 메모장에서 볼 수 있는 현재 라인 번호와 칼럼 번호를 알고 싶습니다.
>
> 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);