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...