Notapad最大的缺陷是它不能显示当前光标所在的行和列。Delphi提供
的TMemo和TRichEdit两个控件也没有提供此功能。可以通过调用函数SendMessage向TMemo
或TRichEdit控件的句柄发送EM_LINEFROMCHAR消息,获取当前光标所在行,发送
EM_LINEFROMCHAR消息可以获取当前光标所在列。在窗体上添加StatusBar1,并设定其中的Panels。在Memo1的onMouseDown事件中加入
以下代码:procedure TForm1.Memo1MouseDown(....)
begin
StatusBar1.Panels.Items[0].Text=SendMessage(
Memo1.Handle,EM_LINEFROMCHAR ,-1,0)+1;
StatusBar1.Panels.Items[1].Text=Memo1.SelStart-SendMessage(
Memo1.Handle,EM_LINEINDEX,-1,0)+1;
end;
便会在状态栏中显示当前鼠标所在的行数和列数。
至于如何选定当前行,你还是用传统的方法吧。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货