Ver Mensaje Individual
  #6  
Antiguo 25-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita