Prueba con esta variación al evento
AllButtonClick anterior:
Código Delphi
[-]
procedure TMDIForm.AllButtonClick(Sender: TObject);
var
NewMDIForm: TForm;
begin
if Self.ActiveMDIChild is MDIChildrenClass[TButton(Sender).Tag] then
begin
if ActiveMDIChild.WindowsState = wsMinimized then
ActiveMDIChild.WindowsState = wsNormal
end
else
begin
Self.ActiveMDIChild.Close
NewMDIForm := MDIChildrenClass[TButton(Sender).Tag].Create(Application)
end
end;
Aquí lo que se hace es que si la clase de la forma que está abierta es la misma de la que quieres abrir, solamente restaura la forma si esta se encuentra minimizada. Si es diferente, entonces realiza el código de cerrar la activa y crear la nueva.
Saludos...