Pergunta

Em um evento de DDE meus programa carrega um arquivo em e deve aparecer em primeiro plano. Eu estava usando

show;

Ele só parece estar funcionando como então quando eu ter escondido a janela.

Então eu adicionei

bringtofront;

Mais uma vez isso funcionou se ele estava escondido, fechado, minimizado ou na bandeja de ícones, mas não se ele foi aberto apenas sob outra janela.

Eu até tentei algumas coisas hacky como

windowstate:=wsminimized;
windowstate:=wsnormal;

para tentar forçá-lo a mostrar, mas sem sucesso. Eu sei que o código está sendo executado como eu tenho as impressões de cada lado deste bloco e não há instruções condicionais que ele poderia ser preso em.

Foi útil?

Solução

Você tentou SetForegroundWindow e / ou SetActiveWindow? Veja também MSDN informações sobre este assunto.

Outras dicas

SetForegroundWindow vontade nem sempre trabalho. Na verdade, nestes dias, é bastante improvável que funcione, porque os aplicativos não é suposto foco garra, eles só podem dá-lo afastado. MS está tentando, por anos para impedir que aplicativos roubando o foco de entrada. Leia os comentários sobre este blogue entrada de Raymond Chen por alguma história.

Então, se você é o aplicativo primeiro plano, você pode SetForegroundWindow para outro aplicativo e tudo será peachy. Se você não tiver o aplicativo primeiro plano, as chances são a única coisa provável de acontecer é um botão da barra de tarefas começa a piscar.

Só para acrescentar alguma confusão, o comportamento preciso é o Windows dependente da versão, então o que acontece depende do que raça do Windows você está executando - eles estão brincando com isso por um longo tempo: -).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top