Ocultar el formulario principal en una aplicación Delphi 2009
-
22-08-2019 - |
Pregunta
El siguiente código funciona bien en Delphi 7. Sin embargo, en Delphi 2009, el formulario no permanecen ocultos pero el botón en la barra de tareas aparece ahora.
ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);
El código anterior se llama en el método FormCreate.
Solución
Resulta que la razón por la que estábamos viendo la ventana de la aplicación en la barra de tareas fue un simple ajuste similar a la respuesta de stukelly pero no del todo.
Para obtener el formulario principal para que aparezca en la barra de tareas y ocultar el menú de la aplicación solicite:
Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;
Sin código detrás de la forma crear o nada necesario.
Otros consejos
Es necesario establecer la ShowMainForm y MainFormOnTaskBar propiedades en falso antes de la forma se crea.
Abre la fuente del proyecto y ajustar MainFormOnTaskBar y ShowMainForm en False, antes de que se crea el formulario.
Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);
A continuación, en su forma principal añadir el siguiente código al FormActivate y FormShow eventos.
procedure TForm1.FormActivate(Sender: TObject);
begin
// hide taskbar button
ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
// hide taskbar button
ShowWindow(Application.Handle, SW_HIDE);
end;
He probado con Dephi 2007 y 2009. Información adicional está disponible aquí .