Hola,
Mira, yo di por entendido que el uso del try/except lo destruirías.... ¿porque no te fijas lo que realmente haces?
Si tu indicas:
Código Delphi
[-]try
form2.show
finally
form2.free;
end;
Lo que consigues es crear e inmediatamente liberar el form2. La forma correcta:
Código Delphi
[-]form2 := TForm2.Create(selft);
form2.Show;
El uso del try/finally tal como lo tenias inicialmente te serviría si crearas ventanas modales, no MDIChild.
Saludos,