Pregunta

En un evento DDE, mi programa carga un archivo y debería aparecer en primer plano. Estaba usando

show;

Parece que solo funciona como cuando he ocultado la ventana.

Así que agregué

bringtofront;

Nuevamente, esto funcionó si estaba oculto, cerrado, minimizado o en la bandeja de iconos, pero no si estaba abierto justo debajo de otra ventana.

Incluso probé algunas cosas piratas como

windowstate:=wsminimized;
windowstate:=wsnormal;

para intentar forzarlo a mostrar, pero en vano. Sé que el código se está ejecutando, ya que tengo copias impresas en ambos lados de este bloque y no hay declaraciones condicionales en las que se pueda atascar.

¿Fue útil?

Solución

¿Intentaste SetForegroundWindow y / o SetActiveWindow? También vea información de MSDN sobre este tema.

Otros consejos

SetForegroundWindow no siempre funcionará. De hecho, en estos días es poco probable que funcione, ya que las aplicaciones no deben captar el foco, solo pueden regalarlo. MS ha intentado durante años evitar que las aplicaciones roben el foco de entrada. Lee los comentarios en esta entrada de blog de Raymond Chen para un poco de historia.

Por lo tanto, si usted mismo es la aplicación de primer plano, puede establecer ForForegroundWindow para otra aplicación y todo estará listo. Si no eres la aplicación de primer plano, es probable que lo único que ocurra es que el botón de la barra de tareas comience a parpadear.

Solo para agregar un poco de confusión, el comportamiento preciso depende de la versión de Windows, así que lo que suceda dependerá de la raza de Windows que esté ejecutando: han estado jugando con esto durante mucho tiempo: -).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top