回 帖 发 新 帖 刷新版面

主题:如何获得文本得行号

本人现在做着一个文本编辑器,但发现richedit这个控件没有提高返回光标所在行这个功能,请问各位高手有什么办法能实现这一功能呢??

回复列表 (共2个回复)

沙发

每次readln是inc(n)不行吗?
定位到这一行时,就循环一下,我是这么做的,呵呵

板凳

{动态显示MEMO中的光标所在位置} //Edit
procedure TForm1.UpdateCursorPos;
var
  CharPos: TPoint;
begin

  //CharPos.Y := SendMessage(mmSnd.Handle, EM_EXLINEFROMCHAR, 0,mmSnd.SelStart);
  CharPos.Y := SendMessage(mmSnd.Handle,EM_LINEFROMCHAR ,mmSnd.SelStart,0);

  CharPos.X := (mmSnd.SelStart -
    SendMessage(mmSnd.Handle, EM_LINEINDEX, CharPos.Y, 0));
  Inc(CharPos.Y);
  Inc(CharPos.X);
  StatusBar1.Panels[0].Text := Format('行: %4d   横: %3d  总: %3d', [CharPos.Y, CharPos.X,CharPos.Y * (CharPos.X-1)]);
end;
这是我以前用的,MEMO控件的。希望对你能有帮助:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册