2017-12-21 13 views
3

私は非常に基本的な問題があり、その理由を理解できません。フィールドがフォーカスを受け取ったときに、TEditのテキストを選択したいと思います。 VCLとデルファイ7では、フォーカス取得時イベントでこれを行うことができます:Delphi 10でTEditフィールドテキストを選択する方法

TEdit(Sender).SelLength := Length(TEdit(Sender).Text) 

を今、デルファイ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; 
+0

テキストのような匿名のスレッドでのSelectAllしようとしています。どのプラットフォームを話していますか? – Victoria

+0

@Victoriaフィールド間を移動するためにTabキーを使用すると、テキストが選択されていることに気付きました。しかし、フィールド(Windows 10)でマウスをクリックしたり、モバイルデバイス(Android 4.4)の画面に触れると、テキストは選択されません。 'Edit1.SelectAll'プロシージャも動作しません。 – wBB

+1

FMXのためのちょうど[これと同じ](https://stackoverflow.com/q/8616463/8041231)(受け入れられた方法は私のWindowsプラットフォームで動作します)。しかし、私は共通のUXから逸脱する可能性のある混乱に同意します。 – Victoria

答えて

0

は、あなたがコントロールだけでコントロールをドロップで任意のコードや変更せずにフォーカスを受け取ったときに、自動的に完全に選択されていること

TThread.CreateAnonymousThread(procedure() 
    begin 
    TThread.Synchronize(nil, procedure() 
     begin 
     Edit1.SelectAll(); 
     end); 
    end).Start 
関連する問題