Inicio > Delphi, Trucos > Evento OnMinimize de un formulario

Evento OnMinimize de un formulario

sábado, 28 de febrero de 2009 Dejar un comentario Ir a comentarios
Share Button

Personalmente a veces me sería útil que el formulario que estoy utilizando tuviera algun sistema para detectar cuando se está minimizando el formularo; Y mejor aun que permitiera interactuar con esta acción.

Utilizo a menudo una opción de configuración que llamo: «Minimizar al Tray». Muchas aplicaciones lo utilizan y se trata simplemente de, en lugar de minimizar la aplicación, ocultarla y mostrar un icono junto al reloj en la barra de tareas de Windows.

Para ellos la forma más sencilla que he encontrado es la que explico a continuación. Hay que decir que estoy usando Delphi 5, así que tal vez en alguna versión posterior (que además cuentan con el componnte para el Tray) habrá alguna solución más sencilla.

1
2
3
// Capturar mensajes al form
procedure WMSysCommand(var Msg: TWMSysCommand);
            message WM_SYSCOMMAND;

Y en la implementación:

1
2
3
4
5
6
7
8
9
10
11
// Capturar mensajes....
procedure TFormMain.WMSysCommand(var Msg: TWMSysCommand);
begin
  // Minimizando?
  if (Msg.CmdType = SC_MINIMIZE) then begin
    actionOcultar.Execute;
  end
  else begin
    DefaultHandler(Msg);
  end;
end;

En mi caso, lo que hago en el procedimiento es llamar al método de ocultar. Importante que en mi caso no deseo que se realice el Minimizar, por eso, la llamada a DefaultHandler está en el else. Si se desea que igualmente se realice esa llamada, esta debe estar fuera del IF.

Vota este post
Categories: Delphi, Trucos Tags: , , ,
Subscribe
Notify of
guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

1 Comment
Inline Feedbacks
Ver todos los comentarios
jose alejandro
jose alejandro
14 years ago

hola que tal no entendi muy bien lo que hiciste pporque soy un novato apenas tengo dos meses que empece a programar y me gustaria que lo explicaras un poco mas detallado si te es posible , por cierto yo utiliso delphi 7,

1
0
Would love your thoughts, please comment.x
()
x