Yo veo bien la opción que mencionas, incluso la veo elegante
Otra forma, no necesariamente mejor, sería que derivaras tus formularios hijos de un formulario base común:
Código Delphi
[-]
type
TBaseChildForm = class(TForm)
public
procedure Add; virtual; abstract;
end;
en el que declaras los métodos (acciones) que vayas a usar. Cada formulario descendiente, define tales métodos como convenga. De esta manera, el formulario padre, simplemente llama al método Add del formulario activo:
Código Delphi
[-]
TBaseChild(ActiveMDIChild).Add;
// Saludos