Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 20-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
MARIA_MAR,

Cita:
Empezado por MARIA_MAR Ver Mensaje
Esta ventana en la que veré el programa de la cámara, quiero que esté siempre visible.
Para mantener en pantalla una ventana fija, independientemente de que otras ventanas se activen se utiliza la función SetForegroundWindow.

Revisa este código el cual permite establecer (Activar y Desactivar) un form al Top Level Window de las otras ventanas:
Código Delphi [-]
// Activa el Top Level de una Ventana en Windows
procedure TForm2.Button1Click(Sender: TObject);
begin
   // API SetWindowPos: Establece el tamaño, posición y Orden Z de una ventana en Windows
   SetWindowPos(Self.Handle,HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;

// Desactiva el Top Level de una Ventana en Windows
procedure TForm2.Button2Click(Sender: TObject);
begin
   // API SetWindowPos: Establece el tamaño, posición y Orden Z de una ventana en Windows
   SetWindowPos(Self.Handle,HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
Resumen: El código anterior permite activar una ventana de una aplicación en Delphi al Top Level Window con el parámetro HWND_TOPMOST y desactivarla con el parámetro HWND_NOTOPMOST.

Revisa este código el cual permite gestionar una aplicación externa, para el ejemplo se uso la Calculadora de Windows.
Código Delphi [-]
// Ejecuta una aplicación en Windows : Calculator
procedure TForm4.Button1Click(Sender: TObject);
begin
   ShellExecute(Handle, 'open', 'Calc.exe', nil, nil, SW_SHOWNORMAL);
end;

// Activa el Top Level de una Ventana en Windows : Calculator
procedure TForm4.Button2Click(Sender: TObject);
begin
   // API FindWindow : Encuentra si esta activa en Windows una aplicación y obtiene su handle
   Window := FindWindow(nil,'Calculator');

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API ShowWindow: Muestra una ventana en Windows
      ShowWindow(Window, SW_SHOWNORMAL);
      // API SetWindowPos: Establece el tamaño, posición y Orden Z de una ventana en Windows.
      SetWindowPos(Window,HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   end
   else
      MessageDlg('La Calculadora No Esta Activa en Windows', mtInformation,[mbOk], 0);
end;

// Desactiva el Top Level de una Ventana en Windows : Calculator
procedure TForm4.Button3Click(Sender: TObject);
begin
   // API FindWindow : Encuentra si esta activa en Windows una aplicación y obtiene su handle
   Window := FindWindow(nil,'Calculator');

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API SetWindowPos: Establece el tamaño, posición y Orden Z de una ventana en Windows
      SetWindowPos(Window, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   end
   else
      MessageDlg('La Calculadora No Esta Activa en Windows', mtInformation,[mbOk], 0);
end;

// Muestra una aplicación en ForeGround : Calculator
procedure TForm4.Button4Click(Sender: TObject);
begin
   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API ShowWindow: Muestra una ventana en Windows
      ShowWindow(Window, SW_SHOWNORMAL);
   end
   else
      MessageDlg('La Calculadora No Esta Activa en Windows', mtInformation,[mbOk], 0);
end;

// Minimiza una aplicación : Calculator
procedure TForm4.Button5Click(Sender: TObject);
begin
   // API FindWindow : Encuentra si esta activa en Windows una aplicación y obtiene su handle
   Window := FindWindow(nil,'Calculator');

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API CloseWindow: Minimiza una ventana
      CloseWindow(Window);
   end
   else
      MessageDlg('La Calculadora No Esta Activa en Windows', mtInformation,[mbOk], 0);
end;

// Cierra una aplicación : Calculator
procedure TForm4.Button6Click(Sender: TObject);
begin
   // API FindWindow : Encuentra si esta activa en Windows una aplicación y obtiene su handle
   Window := FindWindow(nil,'Calculator');

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API SendMessage: Envia un mensaje a un ventana
      SendMessage(Window, WM_CLOSE, 0, 0);
   end
   else
      MessageDlg('La Calculadora No Esta Activa en Windows', mtInformation,[mbOk], 0);
end;
Resumen: El código anterior permite manejar con las APIs de Windows una aplicación externa y mantener su ventana siempre visible, quizás esta solución pueda adaptarse a tu proyecto.

Todo el código se encuentra implementado en el siguiente link: http://terawiki.clubdelphi.com/Delph...Management.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 20-11-2012 a las 19:22:08.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ventana de Windows siempre visible chinchan C++ Builder 1 06-09-2012 03:02:46
Ejecutar programa al inicio de Windows 7 Drakyto Varios 5 27-07-2012 09:25:04
Ejecutar DOS en Ventana Windows MAXIUM Varios 5 29-02-2012 08:24:09
Aplicacion o Ventana siempre visible? cosuroca Varios 4 18-08-2008 04:28:20
Ejecutar en msdos sin ventana de windows apicito Varios 12 05-03-2004 21:23:58


La franja horaria es GMT +2. Ahora son las 03:42:16.


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