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.