Ver Mensaje Individual
  #1  
Antiguo 30-07-2008
RaulChemical RaulChemical is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 59
Reputación: 21
RaulChemical Va por buen camino
Problema al minimizar

Hola a todos...

Desde hace un tiempo me encargo de una aplicación que se minimiza al lado del reloj.
Usa un TApplicationEvents con sus eventos minimize y restore para minimizar y restaurar el mainform y un TTrayIcon para controlar el click y restaurar.

Todo funciona mas o menos bien hasta que, teniendo la ventana en pantalla, pulsamos windows+D o Windows+M.

Con windows+D la aplicacion se minimiza y se me queda la tarea en la barra de tareas y por mucho que hagas click sobre ella, no se restaura. Hay que pulsar botón derecho y cerrar para que desaparezca.

Con Windows+M la aplicación no hace nada, no se minimiza ni se oculta ni nada.

En el WMSysCommand tengo esto:
Código Delphi [-]
procedure TfPrinc.WMSysCommand(var Msg: TWMSysCommand);
begin
  if (Msg.CmdType = SC_MINIMIZE) or (Msg.CmdType = SC_CLOSE) then
  begin
    Application.Minimize;
    fPrinc.hide;
  end
  else if (Msg.CmdType = SC_RESTORE) then
  begin
    Application.MainForm.Hide;
    Application.MainForm.Show;
    application.BringToFront;
    Application.Restore;
  end;
end;

En el TrayiconClick tengo esto:

Código Delphi [-]
procedure TfPrinc.TrayIconClick(Sender: TObject);
begin
  application.restore;
  fPrinc.show;
  application.BringToFront;
end;

Y tengo esto en los AppEvents:
Código Delphi [-]
procedure TfPrinc.AppEventsMinimize(Sender: TObject);
begin
  Application.Minimize;
  fPrinc.hide;
end;

procedure TfPrinc.AppEventsRestore(Sender: TObject);
begin
  application.restore;
  fPrinc.show;
  application.BringToFront;
end;

Se os ocurre algo por lo que no me responda bien a esas combinaciones de teclas?

Muchas gracias.
__________________
ash nazg durbatulûk
ash nazg gimbatul
ash nazg thrakatulûk
agh burzum-ishi krimpatul
Responder Con Cita