Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Minimizar aplicación al Área de Notificación de Windows (https://www.clubdelphi.com/foros/showthread.php?t=77350)

pape19 17-01-2012 13:36:18

Minimizar aplicación al Área de Notificación de Windows
 
Buenas, les comento mi problema.

Necesito que mi aplicación se ejecute al iniciar Windows, esto ya lo hace. Sin embargo, luego de ejecutarse, necesito que se minimice al área de notificación de windows(a la izquierda de la hora). Probé de varias maneras, pero se minimiza a la barra de tareas y esto no me sirve.

La aplicación, si apretamos el botón minimizar del formulario, SI se minimiza al área de notificación por medio de este procedimiento:

Código Delphi [-]
procedure TPrincipal.Minimizar;
begin
  with IconData do
  begin
    cbSize := sizeof( IconData );
    Wnd := Handle;
    uID := 100;
    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
    uCallbackMessage := WM_USER + 1;

    // Usamos de icono el mismo de la aplicación
    hIcon := Application.Icon.Handle;

    // Como Hint del icono, el nombre de la aplicación
    StrPCopy( szTip, Application.Title );
  end;

  // Ponemos el icono al lado del reloj
  Shell_NotifyIcon( NIM_ADD, @IconData );

  // Ocultamos el formulario
  Hide;
end;


procedure TPrincipal.WMSysCommand( var Msg: TWMSysCommand );
begin
  if Msg.CmdType = SC_MINIMIZE then
    Minimizar
  else
    DefaultHandler( Msg );
end;

Lo que no puedo lograr es que esto que realiza al apretar el botón, se realice de manera automática cuando inicia la aplicación al iniciar el sistema. Alguna solucion??? Gracias!!!

Casimiro Noteví 17-01-2012 13:39:34

Si instalas las RXlib, trae un componente que sirve para hacer lo que quieres.

pape19 17-01-2012 13:52:07

Gracias por tu respuesta Casimiro, pero no logro encontrar dicho componente en mis RXlib. A lo mejor lo tengo y no me doy cuenta. En dicho caso, necesitaría saber también como implementarlo. Por si acaso no recuerdas el nombre de la herramienta?

Casimiro Noteví 17-01-2012 14:09:54

Sólo tienes que hacer una búsqueda en nuestros foros por "rxlib", encontrarás bastantes enlaces :)

pape19 17-01-2012 14:18:49

Vuelvo a agradecerte por tu respuesta.

Igualmente ya encontré una solución.

En la ejecución general de la aplicación, agrego la línea de código mostrada. De esta manera, se ejecuta mi aplicación, y minimiza al área de notificación.

Código Delphi [-]
  Application.Initialize;
  Application.CreateForm(TPrincipal, Principal);
  Application.ShowMainForm := false;  //LINEA AGREGADA
  Application.Run;

Delfino 19-01-2012 16:01:22

La JVCL tiene el componente TJvTrayIcon, y Delphi2007 viene con el componente TTrayIcon..


La franja horaria es GMT +2. Ahora son las 17:21:15.

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