A propósito a mí también me está pasando algo similar. La aplicación no se minimiza, sino que pasa a segundo plano. Hasta donde he debugueado el código, he encontrado que el problema viene del uso del componente
TTaskDialog incluído en Delphi 2009.
Eso es en mí caso. Lo que hago es lo siguiente:
Formulario_1 llama a una función en una unidad externa:
Código Delphi
[-]procedure formulario_1.algun_procedimiento(Sender: TObject);
begin
case unidad_externa.confirmar_alguna_operación(Self.Handle, Self);
mrOK: Guardar; Close;
mrNO: No_Guardar; Close;
mrCancel: CanClose := False;
end;
El código en
unidad_externa.confirmar_alguna_operacion crea un TTaskDialog que será hijo del formulario que llame a la función. El TaskDialog se crea y se muestra sin ningún problema. Lo que está ocurriendo es que luego de cerrar Formulario_1 mi aplicación pasa a segundo plano. Esto me tiene de volverme loco!!!!
No sé si alguno de ustedes tiene alguna experiencia al respecto.