Hola racas.
Una posible solución es capturar el mensaje
WM_SYSCOMMAND para detectar cuando se maximiza el form Child, crearte una función para obtener el tamaño del MDIForm y ajustar el MDIChild en consecuencia.
Ejemplo:
Código Delphi
[-]
...
type
TMDIChild = class(TForm)
private
procedure WMSysCommand(var Msg: TWMSysCommand);message WM_SYSCOMMAND;
public
end;
var
MDIChild: TMDIChild;
implementation
uses Unit1;
function GetMDIClientArea(MDIForm: TForm): TRect;
begin
if MDIForm.FormStyle = fsMDIForm then
begin
if not Windows.GetClientRect(MDIForm.ClientHandle, Result) then
RaiseLastOSError;
end
else
raise Exception.Create('Error no es un form MDI');
end;
procedure TMDIChild.WMSysCommand(var Msg: TWMSysCommand);
begin
if Msg.CmdType = SC_MAXIMIZE then
BoundsRect := GetMDIClientArea(MDIForm)
else
DefaultHandler(Msg);
end;
...
Un saludo.