Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Si mi ventana esta oculta como la Puedo mostrar (https://www.clubdelphi.com/foros/showthread.php?t=29888)

JULIPO 03-02-2006 12:34:06

Si mi ventana esta oculta como la Puedo mostrar
 
: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 Noteví 03-02-2006 14:37:25

pues cuando lleguen datos haces un .show y listo

JULIPO 04-02-2006 13:09:12

no funciona
 
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" escrita por Román:

Código Delphi [-]
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

Funciona
 
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


La franja horaria es GMT +2. Ahora son las 06:03:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi