Hola RogerOfTheEagle.
Para tu primer pregunta tal vez te convenga unir la creación y mostrado de los MDIChilds en un solo procedimiento:
Código Delphi
[-]
procedure TMDIForm.OpenMDIChild(AClass: TFormClass);
var
i: Integer;
begin
for i:= MDIChildCount-1 downto 0 do
if MDIChildren[i] is AClass then
begin
MDIChildren[i].WindowState:= wsNormal;
MDIChildren[i].BringToFront;
Exit;
end;
with AClass.Create(Self) do
BringToFront;
end;
Llamada ejemplo:
Código Delphi
[-]
...
begin
OpenMDIChild(TMDIChild1);
end;
Para tu segunda consulta investiga en estos foros sobre la propiedad
WindowMenu. También vas a encontrar mucho material en la web.
Por favor, trata de crear un tema por cada consulta a realizar para de ese modo favorecer los resultados de las búsquedas.
Saludos y gracias por tu colaboración