Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Hacer que mi aplicación pase al frente (https://www.clubdelphi.com/foros/showthread.php?t=30779)

Sr_Sombrero 19-04-2006 04:02:17

Hacer que mi aplicación pase al frente
 
Buenas noches ! :)

Estando mi aplicación tapada por otras, pero sin estar minimizada, quisiera que pase al frente.

Usando Application.BringToFront se queda parpadeando en la barra de tareas pero no pasa al frente la ventana.
Lo unico q me funciona es Application.Minimize y luego Application.Restore pero no queda muy estetico porque se ve la animación de la ventana.

Alguna ayudita???

seoane 19-04-2006 04:23:27

En la pagina de roman puedes encontrar el codigo para evitar que una aplicación pueda ejecutarse más de una vez. Dentro de este codigo se incluye un trocito encargado de traer la aplicacion la frente de forma adecuada.

Código:

// copiado de la pagina de roman
var
  FgThreadId  : DWORD; { Hilo de la app. que tenga el foco }
  AppThreadId : DWORD; { Hilo de nuestra aplicación        }
begin
  { Obtener los hilos }
  FgThreadId  := GetWindowThreadProcessId(GetForegroundWindow, nil);
  AppThreadId := GetWindowThreadProcessId(Handle, nil);

  { Anexar el hilo de nuestra app. al de la  que tenga el foco }
  AttachThreadInput(AppThreadId, FgThreadId, true);

  { Ahora sí, activar la applicación }
  SetForegroundWindow(Handle);

  { Separar el hilo de nuestra app de la otra }
  AttachThreadInput(AppThreadId, FgThreadId, false);
end;


Sr_Sombrero 19-04-2006 05:25:57

Gracias! Es justo lo que necesitaba, otra vez Club Delphi al rescate !!! :D

Lo usé en 2 aplicaciones. En una no tuve problemas, en la otra me tiró el siguiente error al compilar Ambiguous overloaded call to 'GetWindowThreadProcessId' porque se ve que habia alguna otra unidad que usaba GetWindowThreadProcessId pero lo solucioné poniendo Windows.GetWindowThreadProcessId(GetForegroundWindow, nil);

Saludos !


La franja horaria es GMT +2. Ahora son las 23:49:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi