Delphi中在Edit这个控件里怎么让光标始终停留在数据后面?而不是每个更新数据返回前面

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:46:56

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Edit1.selStart:= length(Edit1.Text);
end;
应该写这吧

不过这种控制实在是不人性化

确实KEYDOWN只能在输入时触发,但是根据楼主的要求,很明显是要求输入时候做此限制,他的意思应该是输入的时候不可以随意调整光标位置,如果通过代码赋值,根本不会存在此需求,另外之所以写在keydown里面而不写在OnChang里面,可以自己做个简单的测试对比下,结果很快就可以分辨出来了

楼上的回答不正确,KeyDown只能在Edit通过键盘输入时触发,如果是通过代码给Edit赋值的话,你的光标就不能到最后了。另外一种情况是,大部份情况下,用键盘输入时,光标本来就是在最后的,很少情况须要在中间插入字符。支持123avc123,任何情况下都能把光标定在最后,除非焦点不在Edit上,看不到光标时。

不太明白你的意思,所以这行代码不知道是不是你所要的。写在edit的chang事件里
procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.SelStart:=Length(Edit1.Text);
end;