Cita:
Posteado originalmente por cso2000
quise utilizar la funcion Application.BringToFront y no me funciono como es que tengo que utilizarla
|
Ya veo, el efecto es el del botón que "flashea" pero la aplicación no se activa. Para activar prueba usar esta función que saqué de otro proyecto:
Código:
function Activar;
var
FgThreadId : DWORD; { Hilo de la app. que tenga el foco }
AppThreadId : DWORD; { Hilo de nuestra aplicación }
begin
{ Si está minimizada basta restaurarla }
if IsIconic(Application.Handle) then
ShowWindow(Application.Handle, SW_RESTORE)
else
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;
Lo había olvidado. Application.BringToFront no siempre es suficiente para activar la aplicación. Esta función la saqué cuando estuve investigando como
evitar que una aplicación se ejecute dos veces
Espero que esto te sirve.
// Saludos