Ir para conteúdo
  • Cadastre-se

Recommended Posts

  • Membro Pro Verificado
Postado

Olá a todos,

Estou com uma dúvida aparentemente simples, mas apesar de diversas tentativas e configurações não obtive êxito, por isso tento aqui a ajuda de vocês.

Eu gostaria de chamar um formulário secundário que apresentaria uma mensagem para o usuário, assim que o formulário principal do meu sistema aparecesse desenhado na tela. O usuário ao terminar de ler a mensagem fecharia o formulário secundário, retornando assim para o formulário principal... Porém o foco não volta para o formulário principal, ficando a barra de título acinzentada, se fazendo necessário um clique do mouse no mesmo para receber o foco.

É muito fácil reproduzir esse cenário, aqui eu estou usando o Delphi 11. Basta criar um novo projeto com dois formulário, o principal e o secundário.. No evento OnActivate do form principal execute um comando para chamar o form secundário através do ShowModal, por exemplo:

frm_secundario.ShowModal;

Com isso feito, ao executar o programa feche o formulário secundário que será aberto, observem que o foco não volta para o principal.

Alguém já passou por isso e poderia me ajudar?

Desde já agradeço a atenção

  • Membro Pro Verificado
  • Solution
Postado
5 minutos atrás, Daniel Simoes disse:

Tente usar o método 

function ForceForeground(AppHandle: THandle): boolean;

da Unit ACBrUtil.FilesIO.pas

 

Simplesmente PERFEITO. kkkkkkkkkkkkkk

Qual é a mágica por trás dessa função meu amigo @Daniel Simoes???

  • Fundadores
Postado

no TEF por troca de arquivos, sempre foi um problema a questão de foco na Janela após o Gerenciador Padrão fechar e devolver o controle para a aplicação chamadora....

Ela usa várias chamadas a API do Windows, para forçar a janela desejada, para frente, e a área de foco, dentro dela...

image.png

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...