想做一个带行号的文本编辑器,主要是想在 RichEdit 的左边显示当前行号应该怎么实现?能否给个思路
解决方案 »
- 【CSDN开心辞典】Delphi版黄花最多的人是谁?
- Flash控件SmartFlash v1.5使用问题
- 怎么判断像素色是空
- 问一个很弱的问题,请问用什么工具生成 .dat 文件啊????
- dephi+vba高手请进!!!!!!!!
- 急~~~~~求 集Rreeview和Checkbox于一身的这么一个控件
- 请问在delphi中怎么忽略数据库所报的错误???
- 如何在下拉框上实现快捷键
- 泣血跪求超难算法。。。。高手有请!!!
- 1、怎样把数据库的当前记录追加到另一个数据库中去,如用SQL应怎么写这条语句,不用SQL则又怎么写。
- 100分!如何判断某个目录下是否有子目录
- 如何能用鼠标操作选择多个控件(比如shape)并能在鼠标右键中添加命令(在程序运行过程中)
是在 RichEdit 左边放一个 Panel 专门放行号呢,还是在 RichEdit 上绘制这样一块区域
procedure TForm1.GetPosition(Sender: TRichEdit);
var
iX,iY:Integer;
begin
iX := 0;
iY := 0;
iY :=SendMessage(RichEdit1.Handle,EM_LINEFROMCHAR,RichEdit1.SelStart,0);
iX :=RichEdit1.SelStart-SendMessage(RichEdit1.Handle,EM_LINEINDEX,iY,0);
Panel1.Caption := IntToStr(iY + 1) + ':' + IntToStr(iX + 1) ;
end;
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
GetPosition(RichEdit1);
end;procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
GetPosition(RichEdit1);
end;
row:integer;row:=2;//指定行
RichEdit1.SelStart = SendMessage(RichEdit1.Handle, EM_LINEINDEX, row, 0);
RichEdit1.SelLength=0;
SendMessage(RichEdit1.Handle, EM_SCROLLCARET, 0, 0);