Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2655 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal,

Estou implementando o TEF em uma aplicação em Firemonkey usando o ACBrTEFD. Ocorre que quando termina a transação de TEF o foco não volta para a aplicação, ou seja, na barra de tarefas não fica selecionado o ícone do sistema. Com isso o usuário tem que clicar dentro da aplicação para que o foco volte. Alguém pode me ajudar?

Postado (editado)

Pessoal,

Resolvi de um modo pouco usual, adicionei um form VCL e adicionei na unit uma função que simula o click do mouse usando um dos vários exemplos existentes para VCL. Chamo a função passando as coordenadas e o click ocorre com o foco voltando para a aplicação.

procedure TForm1.Clica(x, y: Integer);
var
Pt : TPoint;
begin
Application.ProcessMessages;
{Obtém o point no centro do Button1}
Pt.x := x;
Pt.y := y;
{Converte Pt para as coordenadas da tela }
Pt := ClientToScreen(Pt);
Pt.x := Round(Pt.x * (65535 / Screen.Width));
Pt.y := Round(Pt.y * (65535 / Screen.Height));
{Move o mouse}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
{Simula o pressionamento do botão esquerdo do mouse}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
{ Simula soltando o botão esquerdo do mouse }
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
end;

 

Editado por Earmarques
  • Este tópico foi criado há 2655 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.