Hola, creo que es debido a que en el restores llamas al Hide, por lo que entonces vuelves a enviar un mensaje SC_CLOSE y luego posteriormente, con el show, otro mensaje SC_RESTORE. Vamos, que se te queda bloqueado el funcionamiento recursivamente. Prueba de poner, en vez de
Código Delphi
[-]
else if (Msg.CmdType = SC_RESTORE) then
begin
Application.MainForm.Hide;
Application.MainForm.Show;
application.BringToFront;
Application.Restore;
end
tansolo
Código Delphi
[-]
else DefaultHandler(Msg);
y vigilar en Appeventsrestore , minimize, si realmente son necesarias. Saludos.