如果TMemo控件的Name为memo的话:
memo.SelText为当前选取的文本内容;
memo.CaretPos.x; memo.CaretPos.y为当前的行与列。
这是因为是这样的,在你回车的时候,你实质上给当前行增加了一个回车符,
光标移动到了下一行,但没有插入任何值,所以这一行不是一line,
可以这样解决
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
CurrentLine,i: Integer;
begin
//获取当前行号 注意,第一行为0,第二行为1
CurrentLine :=memo1.Perform(em_LineFromChar,CurrentLine,0);
//CurrentLine+1为实际行号,以下判断
if (CurrentLine+1)>Memo1.Lines.Count then
i:=CurrentLine+1
else
i:=Memo1.Lines.Count;
Label1.Caption:=IntToStr(i);
end;
阅读(4994) | 评论(0) | 转发(0) |