This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Evento OnMinimize del formulario

  • 0 Replies
  • 2826 Views

0 Members and 1 Guest are viewing this topic.

Offline ANTRAX

  • *
  • Administrator
  • Posts: 5849
  • Actividad:
    66.67%
  • Country: ar
  • Reputación 43
  • ANTRAX
  • Twitter: @Underc0de
    • View Profile
    • Underc0de
    • Email

Evento OnMinimize del formulario

  • on: February 24, 2010, 05:00:18 pm
Los formularios de Delphi no tienen el evento OnMinimize.
A veces estaría bien disponer de él; En mi caso lo necesitaría ya que a veces doto a mis aplicaciones de la caraterística (o manía mía) de que al minimizarlos "pasan al Tray"; Es decir, oculto el form y visualizo el icono junto al reloj.

Una forma sencilla de detectarlo es hacer lo siguiente.
En la sección private del form añadir esta definición:

Code: (delphi) You are not allowed to view links. Register or Login
// Capturar mensajes al form
  procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;


Y en la implementación se captura el mensaje de minimizar:

Code: (delphi) You are not allowed to view links. Register or Login
// Capturar mensajes....
procedure TFormMain.WMSysCommand(var Msg: TWMSysCommand);
begin
  // Minimizando?
  if (Msg.CmdType = SC_MINIMIZE) then begin
    // Accion de ocultar el form
    actionOcultar.Execute;
  end
  else begin
    // comportamiento estandard
    DefaultHandler(Msg);
  end;
end;


¡Ojo! En mi caso no me interesa que el formulario se minimize, ya que yo lo oculto, pero si os interesa que esa acción se realice, debéis sacar fuera del else la llamada a
DefaultHandler(Msg)


P.D: Funciona con el botón de minimizar y desde el menú de sistema del form, pero no pulsando click derecho sobre el botón de la barra de tareas. (Cuando lo encuentre lo añado).



« Last Edit: April 15, 2013, 11:26:32 pm by Expermicid »