Evento OnMinimize de un formulario
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.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
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,