DoClose es una variable booleana que tienes que declarar tú (por ejemplo en la sección
private del formulario) y que inicializas a
false (no es estrictamente necesario ya que por defecto su valor será
false).
Cuando se ejecuta el evento OnCloseQuery, si DoClose es false...
... ¡oops! hay un error. El evento debe ser:
Código Delphi
[-]
CanClose := DoClose;
if not CanClose then
begin
Hide;
RxTrayIcon.Active := true;
end;
Ahora sí. Cuando se ejecuta este evento, si DoClose es
false, entonces CanClose será
false también por lo que el formulario no se cerrará y en su lugar se ocultará y se activará el icono.
Si no usaras esta variable auxiliar y pusieras siempre CanClose :=
false, nunca podrías cerrar el formulario. El item "Salir" del PopupMenu está entonces para que ajustes DoClose a true en su evento OnClick:
Así, cuando la llamada a Close genere el evento OnCloseQuery, DoClose será ahora
true y por tanto también CanClose permitiendo que se cierre el formulario.
// Saludos