Yes, but it would kind of break the idea of having a framework where the host (where this code resides) don't have to know anything about the components it hosts, other than that they all share a certain interface.
At the moment, I need one (or, if one is strict about counting, two) line of code to add a component. Example:
'Add About SCR
Dim SCR As cSCRAbout :AddSCR(SCR)
'Add Video SCR
Dim SCR As cSCRVideo :AddSCR(SCR)
That's the only place where I need to know the actual type. Form then on, I don't want to have to add any special handling at all for different SCRs. For example, if I do this the following, I shouldn't need any special handling depending on if it's cSCRAbout or cSCRVideo, I just need to know that since they have all the methods and properties that the SCR interface demands, they should have an Enabled-property.
Sub EnableSCR(SCR as object, Enabled as Boolean)
SCR.Enabled=Enabled
End Sub
These are the very building blocks in my framework, and I'm going to use them a lot. I don't want to add specific code for each SCR (which may be dozens) in every specific place I access them.
I understand (or, at least I think I do) why Erel has chosen to not go down the full object oriented path, and I support those reasons, but in this case, it would have been easy to just define an iSCR interface, then specify on all SCRs that they Implements iSCR. THat way, I could have been able to simply handle them all as iSCR.