Acabo de probarlo en Delphi 7 y no da errores de memoria, de hecho se crean las dos ventanas, tanto la fsMDIFORM como la fsMDIChild.
aliciasampe: Por casualidad no tendrás visible := false en la ventana principal ¿no?. Lo digo, porque al ser una aplicación MDI se comporta de modo distinto a una aplicación SDI, y quizás haya incongruencias.
Aunque si tiene un efecto extraño el uso del evento OnActivate en el fsMDIFORM.
Pongamos el caso: en el evento Onactivate tenemos el código de crear las fsmdichild. Ejecutamos la aplicacion y se abre el fsmdiFORM y el fsmdichild. Nos vamos al bloc de notas y volvemos a nuestra aplicación, "el efecto raro", es que el fsmdiFORM no recibe el evento OnActivate, deduzco que lo recibe la ventana mdiChild que está abierta, por tanto,
no se crea una nueva ventana mdiChild.
Cierro el mdichild, vuelvo al bloc de notas y después a nuestra aplicación, y se abre un nuevo mdichild. Ahora si recibe el evento OnActivate.
Para más efectos extraños, colocamos ahora un panel en el fsMdiFORM y volvemos a correr la aplicación, cuando demos un clic al panel (sin tener eventos programados en dicho panel) aparecerá una nueva ventana mdiChild.
Puesto que al abrirse una nueva ventana mdichild ésta recibe el foco, siempre que hagamos clic en el panel estamos dando el foco al MDIFORM de nuevo, por lo siempre hará saltar el evento.
Este comportamiento, aunque parezca extraño es normal en las ventanas MDIFORM, ya que internamente manejan 2 ventanas.
guglu: Lo de poner a nil el evento OnActivate, buena idea
.
Saludos