Ver Mensaje Individual
  #5  
Antiguo 15-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Reputación: 19
ElDioni Va por buen camino
Hola este código lo saqué del club hace ya tiempo, me sirvió para crear un programa de mensajería interna que al hacer la comprobación de si tenías mensajes pendientes de leer te ponía el mensaje pendiente (el formulario correspondiente) encima de todos los programas que tenías abiertos en ese momento. Supongo que si utilizas el mismo código en un timer que se actualice cada poco tiempo conseguiras que el formulario que quieres se quede siempres encima de todo.

Código Delphi [-]
var
FgThreadId  : DWORD; { Hilo de la app. que tenga el foco }
AppThreadId : DWORD; { Hilo de nuestra aplicación        }
Código Delphi [-]
form3.FormStyle:=FsStayOnTop;
Form3.Showmodal;
Form3.FormStyle:=FsNormal;
{ 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);

Espero que te sirva.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita