我有一个非常基本的问题,我不知道为什么。我想在该字段获得焦点时选择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;

最佳答案

您是否尝试过像这样的匿名线程中的SelectAll

TThread.CreateAnonymousThread(procedure ()
  begin
    TThread.Synchronize(nil, procedure ()
      begin
        Edit1.SelectAll();
      end);
  end).Start

10-08 05:18