
procedure TForm1.Button4Click(Sender: TObject)
var
i:integer
begin
i:=Length(memo1.Text)
memo1.Text:=memo1.Text+'新增加文本'
memo1.SetFocus
memo1.SelStart:=i
memo1.SelLength:=10
end
RichEdit1.SetFocus肯定可以定位光标位置,估计是你写的那个位置不对,没有执行;你把代码都放在 FormShow事件里看看procedure TForm1.FormShow(Sender: TObject)begin
RichEdit1.SetFocus RichEdit1.perform(em_setsel, 0, 0)end看看这是不是你要的效果?
1.CaretPos可以直接控制光标位置,比如CaretPos := Point(20, 2) 表示将光标放在第200行第2个字符之后。
2.可以通过SelText来代替Lines.Add,比如
SelStart := Length(richedit.Text)//光标移动到最后
SelLength := 0 //选中0个字符
SelText := '要显示的内容' //你要显示的内容, 此时光标移动到最后,并且刚显示的内容被选中
SelStart := Length(richedit.Text)//再次,光标移动到最后
SelLength := 0 //再次。选中0个字符
3. 如果你一直使用Lines.Add, 并且希望光标始终在最后的话,有个简单的方法,
richedit.SelStart := Length(richedit.Text)
PostMessage(richedit.Handle, WM_VSCROLL, SB_BOTTOM, 0)
以上三种任选其一啦,有问题欢迎再问。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)