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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中在Edit这个控件里怎么让光标始终停留在数据后面?而不是每个更新数据返回前面相关的知识,希望对你有一定的参考价值。

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

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

确实KEYDOWN只能在输入时触发,但是根据楼主的要求,很明显是要求输入时候做此限制,他的意思应该是输入的时候不可以随意调整光标位置,如果通过代码赋值,根本不会存在此需求,另外之所以写在keydown里面而不写在OnChang里面,可以自己做个简单的测试对比下,结果很快就可以分辨出来了
参考技术A 楼上的回答不正确,KeyDown只能在Edit通过键盘输入时触发,如果是通过代码给Edit赋值的话,你的光标就不能到最后了。另外一种情况是,大部份情况下,用键盘输入时,光标本来就是在最后的,很少情况须要在中间插入字符。支持123avc123,任何情况下都能把光标定在最后,除非焦点不在Edit上,看不到光标时。 参考技术B 不太明白你的意思,所以这行代码不知道是不是你所要的。写在edit的chang事件里
procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.SelStart:=Length(Edit1.Text);
end;

delphi7如何知道Edit控件现在正拥有焦点?当tab移到它时.

只发现,if edit1.foursed 是不行的.

参考技术A Edit有一个事件是OnEnter,意思就是当该控件获得焦点时触发。你试试。
procedure TForm1.Edit1Enter(Sender: TObject);
begin
showmessage('我现在拥有焦点啦!');
end
而focused是让控件获得焦点,你既然让它获得焦点了那还判断什么呢。
所以应该用OnEnter事件来捕捉获得焦点事件。

以上是关于Delphi中在Edit这个控件里怎么让光标始终停留在数据后面?而不是每个更新数据返回前面的主要内容,如果未能解决你的问题,请参考以下文章

delphi 字体变小

delphi,N个edit控件,1个button控件,做修改操作的时候,无论在哪个edit中输入,单击button都成功修改并

delphi7如何知道Edit控件现在正拥有焦点?当tab移到它时.

Delphi2010,DelphiXE 安装控件找不到DesignIntf 解决办法

delphi如何弹出一个提示窗口

奇淫怪巧之给Delphi的PrintDialog增加一个页码选定范围打印的Edit 转