procedure TForm1.Memo1Click(Sender: TObject);
begin
Text := Format('当前列:%d, 当前行:%d', [Memo1.CaretPos.X, Memo1.CaretPos.Y]);
end;
//用 API 实现
procedure TForm1.Memo1Click(Sender: TObject);
var
LineY,LineX: Integer;
begin
LineY := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
LineX := SendMessage(Memo1.Handle,EM_LINEINDEX,LineY,0);
Text := '当前行:' + IntToStr(LineY) + '; ' + //0开始
'当前列:' + IntToStr(Memo1.SelStart - LineX) + '; ' + //0开始
'当前字符:' + IntToStr(Memo1.SelStart) + '. '; //包括#13#10
end;
Memo 的当前行、当前列与当前字符
最新推荐文章于 2025-06-10 15:55:16 发布
本文介绍了如何使用API获取文本编辑器中光标所在的位置,包括当前行和列。通过发送特定消息到编辑器的句柄,可以计算出光标的实际坐标,从而方便在文本操作中获取精确信息。
172万+

被折叠的 条评论
为什么被折叠?



