devxlogo

Delphi MDI Form

Delphi MDI Form

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.

devx-admin

Share the Post: