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)
-   -   Aplicar minimizar en barra de tareas sin poner el codigo en todas las formas (https://www.clubdelphi.com/foros/showthread.php?t=65168)

Alexander 25-11-2009 17:04:36

Aplicar minimizar en barra de tareas sin poner el codigo en todas las formas
 
Hola Tengo una aplicación que tiene muchas forms.

Con el siguiente codigo uno puede minimizar en el task bar en lugar de donde lo hace generalmente las aplicaciones de Delphi.

Como hago para que la aplicación utilice este código sin ponerlo en cada una de las formas?


Código Delphi [-]
Procedure WMSYSCOMMAND(Var Msg: TMessage); Message WM_SYSCOMMAND;

Procedure WMSYSCOMMAND(Var Msg: TMessage);
Begin
If Msg.wParam = SC_MINIMIZE Then
Begin
Application.Minimize;
End
Else
Inherited;
End;





he probado también este pero tampoco he logrado que funcione para toda la aplicación.


Código Delphi [-]
Type ...
function AppHook(var Msg: TMessage): Boolean;

function TForm.AppHook(var Msg: TMessage): Boolean;
begin
Result := false;
if Msg.Msg = WM_ENABLE then
if not TWMEnable(Msg).Enabled then
begin
EnableWindow(Application.Handle, True);
Result := true;
end;
end;

//En Create
Application.HookMainWindow(AppHook);

//En Destroy
Application.UnhookMainWindow(AppHook);






Que podré estar haciendo mal?

Muchas gracias por sus sugerencias.

Alexander

Lepe 25-11-2009 23:49:41

No sé muy bien si entiendo lo que quieres hacer, pero al menos una solución es esta, herencia visual.

Crea un form base que tenga ese código:
Código Delphi [-]
TBaseForm = class(TForm)
public
  Procedure WMSYSCOMMAND(Var Msg: TMessage); Message WM_SYSCOMMAND;
end;
....

implementation
....

Ahora si tienes un form cliente definido así:
Código Delphi [-]
TCliente = class(TForm)
sólo tienes que cambiarlo a:
Código Delphi [-]
TCliente = class(TBaseForm)

hecho !

Si vas a crear un Form nuevo, o bien lo haces a mano como antes, o bien eliges File -> New -> other -> project -> TBaseForm (marcar como inherited) y aceptar.

Si como dices tienes muchas formas ya creadas, sin duda necesitas de alguna utilidad que haga el trabajo sucio. Tú mismo puedes cargar los archivos .pas y modificarlo o busca programas ya hechos... que los hay y se han comentado anteriormente en el foro.

Alexander 30-11-2009 23:42:01

Es una posibilidad
 
Pues es una buena posibilidad y no hay mucho esfuerzo. Muchas Gracias por contestar.


La franja horaria es GMT +2. Ahora son las 21:12:42.

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