Ver Mensaje Individual
  #4  
Antiguo 25-12-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola _CALI.

Al maximizar un MDIChild este ocupa el área cliente del MDIForm, ese es su comportamiento natural y al menos yo no conozco manera de cambiar eso. Pero podes interceptar el maximizado, redimensionar y mostrarlo normalmente, como en el código anterior.

Una pequeña "mejora" al código anterior podría ser:
Código Delphi [-]
procedure TForm2.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType = SC_MAXIMIZE then
  begin
    Left   := 0;
    Top    := 0;
    Width  := frmMDIForm.ClientWidth - 4;
    Height := frmMDIForm.ClientHeight - 4;
    BorderIcons:= BorderIcons - [biMaximize]; // desactivar maximize
    WindowState:= wsNormal;
  end
  else
  begin
    BorderIcons:= BorderIcons + [biMaximize]; // activar maximize
    DefaultHandler(Msg);
  end
end;
Cuando la ventana está restaurada al valor fijado y al estar deshabilitado el ícono maximizar, el usuario no intentará hacer click inútilmente sobre él.

Para que pudiera verse el ícono restaurar, el MDIChild tendría que estar maximizado. Pero si lo está, tenemos que atenernos su comportamiento natural que es ocupar todo el área cliente del MDIForm.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita