Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ocultar la barra de tareas durante la exe de la aplicación (https://www.clubdelphi.com/foros/showthread.php?t=30401)

Cabanyaler 05-04-2006 13:00:37

Ocultar la barra de tareas durante la exe de la aplicación
 
Hola, compañeros.
Necesitaría ocultar la barra de tareas de WXP durante la ejecución de mi aplicación, para de ese modo tener la aplicación en su form ocupando toda el area de trabajo de la pantalla y que se viese toda su extensión.
He probado con el truco de trucomania con las órdenes:
Código Delphi [-]
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_HIDE);
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_SHOWNA);
Pero no me oculta nada.
Tb he probado con este código, por si el anterior era sólo para W98, Home, NT
Código Delphi [-]
// Para ocultarla: 
ShowWindow(Application.Handle, SW_HIDE);
//Para mostrarla:
ShowWindow(Application.Handle, SW_SHOW);

He buscado por el foro, pero no he encontrado nada que me la oculte.
He introducido el código tanto ántes como después de ...
Código Delphi [-]
Application.Run;
así como en los eventos OnClose y OnCreate del form principal, pero nada.

Si conocéis como hacerlo, os lo agredecería.
Un saludo y gracias.

dec 05-04-2006 13:14:29

Hola,

Prueba con las siguientes propiedades del formulario principal de tu aplicación:

Código Delphi [-]
BorderStyle := bsNone;
WindowState := wsMaximized;

Bicho 05-04-2006 13:30:48

Pos a mi me funciona
 
Pues yo he probado esto:

Código Delphi [-]
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_HIDE);

en un WinXP y funciona perfectamente.

Si vas a usar lo que te ha comentado dec, ten en cuenta que tu aplicación no tendrá la barra de arriba, con lo que no podrás cerrarla, a menos que tengas un botón para cerrar.

Saludos

Cabanyaler 05-04-2006 15:45:22

Oh, gracias. Según el código de el "bicho" :D , me funciona correctamente, la barra desaparece. No sé porque antes no me funcionaba.
Pero, y siempre hay un pero, si minimizo la aplicación, cosa que harán los usuarios a lo largo del día para trabajar con otras aplicaciones, no se puede ver la barra para elegir cualquier otra tarea o aplicación que tuviesen minimizada.
Lo que deseo es que la barra se comporte como si tuviese en sus propiedades la opción:
"Ocultar automáticamente la barra de tareas", seleccionada, es decir, al pasar el cursor por la parte inferior de la pantalla, que esta emergiese.
Gracias.

Kosmo 05-04-2006 16:00:07

Onminimize
 
Si pegas un ApplicationEvents verás que hay un OnMinimize, que podrías usar para hacer que aparezca otra vez la barra de tareas. Lo que pasa es que solo se dispararía en el caso del formulario principal si no recuerdo mal.

De todas formas, una solución mas chapucera sería utilizar el evento OnResize del formulario, el cual se dispara despues de toda modificacion de tamaño. Podrías preguntar el WindowState del formulario en cuestion y ver si es esta minimizado o no, asi en caso de que este minimizado (ya que el evento como digo se dispara despues del cambio de tamaño) puedes hacer aparcer la barra.

Espero te sirva de ayuda, saludos.

Lepe 05-04-2006 16:01:28

En el ApplicationsEvents tienes el evento OnMinimize.


Saludos

Bicho 05-04-2006 16:02:34

Pero si es el mismo código que tu pusiste! no lo entiendo, pero en fin

Yo no se tus usuarios, pero los mios usan sin ningún problema el ALT + TAB para pasar de un programa a otro. Y de verdad que a algunos habría que quitarles el pc, por las barbaridades que hacen, pero mira tú, que el ALT + TAB lo tienen dominadísimo.

En cuanto a ejecutar algo cuando la aplicación se minimice, debes poner una ApplicationEvents y éste tiene el evento OnMinimize, allí podrás resturar la barra de tareas.

Saludos

Cabanyaler 05-04-2006 17:17:56

Uff, perdonad por las vueltas al tema, pero no me gusta. No me gusta, lo siento.
He hecho esto, de forma perfecta con el componente "ApplicationEvents":
Código Delphi [-]
procedure TFPrincipal.ApplicationEvents1Activate(Sender: TObject);
begin
    ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_HIDE);
end;

procedure TFPrincipal.ApplicationEvents1Minimize(Sender: TObject);
begin
    ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_SHOW);
end;

pero aún teniendo el form en su propiedad WindowState := maximize y Width, Heigth a todo lo que dá la pantalla, la barra me desaparece pero el form no me consume el espacio dejado por la barra desaparecida, y al minimizar la aplicación, no me muestra la barra. :(

No sé, pero bueno, no deja de ser una pejilleria de presentación, lo importante es que la aplicación funcione ok y eso lo hace, ya les sugeriré que dejen la configuración de ocultar automáticamente la barra, y si no lo hacen... es problema suyo. Del otro modo, si no les aparece la barra o se queda el espacio o cualquier otro tema, el culpable soy yo, y de eso amigos no hace falta que os explique nada.
Gracias, no obstante, a los dos.

Nota:
Presiosa localitat Inca i més bonita illa, el mal es que dones un puntelló a un cudol i surt un guiri tot bermell.
Preciosa localidad Inca y más bonita isla, lo malo es que das una patada a una piedra y sale un guiri to rojo.
;)


La franja horaria es GMT +2. Ahora son las 01:33:20.

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