PDA

Ver la Versión Completa : Si mi ventana esta oculta como la Puedo mostrar


JULIPO
03-02-2006, 12:34:06
:rolleyes: reciban un cordial saludo en esto de los hilos no tengo mucha idea espero puedan ayudarme, Tengo una aplicacion que permanece oculta, minimizada o sencillamente no esta al frente cuando estoy ejecutando varios programas a la vez , si llega un dato por el puerto serial quiero que la aplicacion se muestre como hago esto.:D

Casimiro Notevi
03-02-2006, 14:37:25
pues cuando lleguen datos haces un .show y listo

JULIPO
04-02-2006, 13:09:12
agradezco la respuesta que ya me enviaron pero como funciona el .show dentro de la misma aplicacion (perdona que no entienda y por eso escribo quiero que me quede muy claro), como lanzo la ventana ya ejecutada he tratado haciendo main.show pero no hace nada sigue minimizado y no pasa al frente .....:cool:

dec
04-02-2006, 18:03:23
Hola,

A ver si este procedimiento puede echarte una mano. El mismo está basado en el código fuente de la unidad "UIApp" (http://roman.clubdelphi.com/index.php?pg=uiapp) escrita por Román:


procedure ActivarAplicacion;
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(Application.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(Application.Handle);

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

JULIPO
07-02-2006, 00:07:31
Quiero agradecerles las oportunas respuestas a mi inquietud, el programa que me enviaste funciona muy bien es justo lo que necesitaba.

gracias y mil gracias.:D