segunda-feira, 7 de setembro de 2020

 

SetFocus no Firemonkey Delphi.


O Firemonkey do Delphi proíbe a mudança de foco em alguns eventos. Para conseguir contornar a situação do SetFocus dos campos, precisamos mandar um mensagem atrasada para o form.

Como mandar esta mensagem. Simples vamos usar uma Thread Anonima. Pois é depois de muita procura achei um paliativo.

Vamos a Função:

procedure TfrmTelaPadrao.ForceFocus(Obj: TControl);
begin
  TThread.CreateAnonymousThread(
    procedure
    begin
      TThread.Synchronize( nil,
         procedure
         begin
           Obj.SetFocus;
         end
      );
    end
  ).Start;
end;

Espero que tenha ajudado a quem procura.

Origem: https://valedodelphi.blogspot.com/2018/11/setfocus-no-firemonkey-delphi.html