Em alguns casos o foco não aparece no componente que se indicou, por exemplo em um TEdit, onde apesar de se poder digitar algo nele, o cursor não é exibido. Geralmente isso ocorre depois de uma mensagem. Veja aqui como corrigir!
procedure SetFocusCtrl(Ctrl: TWinControl; ActiveCtrl: TWinControl);
begin
Ctrl := ActiveCtrl;
ActiveCtrl := nil;
PostMessage(TWinControl(Ctrl).Handle, WM_SETFOCUS, 0, 0);
TWinControl(Ctrl).SetFocus;
end;
Considerações
Ctrl = Componente que receberá o foco.
ActiveCtrl = Sempre será a variável ActiveControl, que é o
TWinControl padrão do Form em que está o componente.
Exemplo de uso:
SetFocusCtrl(edtCliente, ActiveControl);
Um abraço amigos Delphianos!
Por: Jônatas de O. Ramalho Data
Contato: jonatasramalho@pop.com.br
|