【发布时间】:2018-06-03 15:25:17
【问题描述】:
我有一个非常基本的问题,我不知道为什么。我想在字段获得焦点时选择 TEdit 的文本。在带有 VCL 的 Delphi 7 中,您可以在 OnEnter 事件中执行此操作:
TEdit(Sender).SelLength := Length(TEdit(Sender).Text)
现在,使用 Delphi 10.2 和 FireMonkey,我尝试了几种不同的方法,但都不起作用。
例子:
procedure TfPrincipal.Edit1Enter(Sender: TObject);
begin
TEdit(Sender).SetFocus;
TEdit(Sender).SelStart := 0; // I already tried to change this value
TEdit(Sender).SelLength := Length(TEdit(Sender).Text); // I already tried to change this value too
end;
【问题讨论】:
-
当控件获得焦点时,文本将自动完全选中,而无需任何代码或更改刚刚放下的控件。我们在谈论哪个平台?
-
@Victoria 我注意到当我使用 TAB 键在字段之间导航时选择了文本。但是,当我在字段中单击鼠标时(在 Windows 10 中)或当我触摸移动设备的屏幕(Android 4.4)时,不会选择文本。
Edit1.SelectAll过程也不起作用。 -
啊哈,所以the same as this 仅适用于 FMX(在 Windows 平台上接受的方式适用于我)。但我同意偏离常见的用户体验可能会造成混淆。
-
天哪! VCL 和 Firemonkey 之间的这些和其他小差异最终会占用我们很多时间。它适用于
OnClick事件,但不适用于OnEnter,就像在VCL 中一样。再次感谢@Victoria -
@Calenaur 您链接到的 q/a 是关于
Vcl TEdit,而这个问题是关于Fmx TEdit,所以,不是重复的。
标签: delphi firemonkey