Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2009
Avatar de Neftali
Neftali Neftali is offline
-Germán Estévez-
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 15.396
Poder: 10
Neftali Va camino a la famaNeftali Va camino a la fama
Evento OnMinimize del formulario

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:

Código Delphi [-]
  // Capturar mensajes al form
  procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

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

Código Delphi [-]
// 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).
Responder Con Cita
  #2  
Antiguo 07-02-2009
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 589
Poder: 11
ingabraham Va por buen camino
actionOcultar.Execute;
no me reconoce este codigo, necesito alguna uses
Responder Con Cita
  #3  
Antiguo 09-02-2009
Avatar de Neftali
Neftali Neftali is offline
-Germán Estévez-
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 15.396
Poder: 10
Neftali Va camino a la famaNeftali Va camino a la fama
No. Esa es simplemente una Action que yo tengo para ocultar el form. En ese punto puedes añadir el código que necesites.

En mi caso tengo esa Action definida como:

Código Delphi [-]
AnimateWindow(FormMain.Handle, 600, AW_SLIDE or AW_HIDE or AW_BLEND);
  FormMain.Hide;

Pero si deseas hacer otra csa, puedes poner cualquier otro código.
Responder Con Cita
  #4  
Antiguo 15-12-2009
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 238
Poder: 11
Nasca Va por buen camino
Neftalí he adaptado la idea para algo que tenía pendiente y parece funcionar pulsando en la barra. En Delphi 7 sobre XP.

Código Delphi [-]
procedure SysCommand(var Msg: TMessage); message wm_SysCommand;

procedure TfMain.SysCommand(var Msg: TMessage);
begin
  {salvo el cerrar}
  if Msg.wParam = sc_Close then
     dmdatos.fdmdatos.acCerrarApp.Execute
   else
     begin
       if Msg.wParam = SC_MINIMIZE then
          Application.Minimize
         else
          inherited; {para tratar los mensajes como habitualmente};
     end;
end;
Responder Con Cita
  #5  
Antiguo 19-07-2010
Avatar de Greco
Greco Greco is offline
Miembro
 
Registrado: jul 2007
Ubicación: Chile
Posts: 97
Poder: 11
Greco Va por buen camino
hace ya bastante tiempo necesitaba algo parecido, gracias a la ayuda de alguien que no recuerdo, ahora utilizo el componente ApplicationEvents que viene en la paleta Additional y dispone de un evento OnMinimize, entre otros.
Responder Con Cita
  #6  
Antiguo 26-07-2010
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 248
Poder: 11
waly2k1 Va por buen camino
Estoy buscando algo parecido, pero recien ingreso asi q no pregunto nada y lo busco primero, si no encuentro lo que busco recién pregunto hehe. El tema es que el minimize en Win7 no siempre funciona y se pierde la aplicación, desaparece de la lista del admninistrador de tareas, se lo ve en la solapa servicios, pero ho hay forma de restaurarlo. Con lo cual hay que finalizar la aplicación y reiniciarla.
Y todo esto para un usuario final resulta una tarea un poco engorrosa, ya que pagóoooo por algo que funcione.
Saludos!
Walter
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:48:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi