Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2006
Avatar de Sr_Sombrero
Sr_Sombrero Sr_Sombrero is offline
Miembro
 
Registrado: may 2003
Posts: 49
Poder: 0
Sr_Sombrero Va por buen camino
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???
Responder Con Cita
  #2  
Antiguo 19-04-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
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;
Responder Con Cita
  #3  
Antiguo 19-04-2006
Avatar de Sr_Sombrero
Sr_Sombrero Sr_Sombrero is offline
Miembro
 
Registrado: may 2003
Posts: 49
Poder: 0
Sr_Sombrero Va por buen camino
Gracias! Es justo lo que necesitaba, otra vez Club Delphi al rescate !!!

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 !

Última edición por Sr_Sombrero fecha: 19-04-2006 a las 05:59:00.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pase de datos de access a interbase perillan Conexión con bases de datos 2 03-03-2005 20:55:30
Form Al frente el_enigma1 OOP 2 20-01-2005 00:28:21
copy and pase jorch_yr Internet 0 06-01-2004 20:30:20
Como traigo al frente una aplicacion que no sea la mia cso2000 Varios 11 22-10-2003 21:02:05
Pase de linea superhopi Impresión 1 06-05-2003 17:31:46


La franja horaria es GMT +2. Ahora son las 15:34:38.


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
Copyright 1996-2007 Club Delphi