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