Primero que nada necesitas de una componente que te permita manejar iconos en el área de notificación (la del reloj). Para ello puedes usar TRxTrayIcon de las librerías RX. A la componente le asignas el icono que quieras y un PopupMenu que tendrá los ítemes que desees mostrar al dar click derecho en el icono.
En el evento OnCloseQuery del formulario principal pones
Código Delphi
[-]
CanClose := DoClose;
if CanClose then
begin
Hide;
RxTrayIcon.Active := true;
end;
donde DoClose será una variable booleana (normalmente en
false). Con esto impides que se cierre el formulario y en su lugar se oculte y haces visible el icono.
Las opciones que quieras poner en el menú serán a tu gusto pero muy posiblemente requieras como mínimo dos:
Mostrar - para volver a mostrar el formulario
Salir - para terminar (aquí sí) la aplicación
En la segunda opción pones DoClose en
true para que el evento OnCloseQuery te permita cerrar el formulario.
Finalmente, en el evento OnShow del formulario desactivas el icono:
Código Delphi
[-]
RxTrayIcon.Active := false;
a menos que desees que esté visible aún con el formulario a la vista.
// Saludos