Question:
Imagine an MDI application where the MDIFrame has many MDIChild forms?each one derived from TBlueForm class. The TBlueForm class has a public method named ChangeColor which only makes the form’s color change from gray to blue. How do I call the ChangeColor method from the MDIFrame without referencing the Childform’s name but using the ActiveMDIChild property of the MDIFrame?
ActiveMDIChild.ChangeColor;
When I tried this, the compiler returned the error:
Undeclared identifier:'ChangeColor'
So it seems that ActiveMDIChild only recognizes the methods inherited of TForm. All the MDIChild forms were included in the uses session of the MDIFrame.
Answer:
You could try typecasting the ActiveMDIChild like so:
TBlueForm(ActiveMDIChild).ChangeColor;
This code should work.