TOPIC: internal classes
#709
internal classes 3 Years, 6 Months ago
Hi all

Ive been experiementing with using inner classes in this type of format
With a class called MyControl
Code:


Controller {
MyButtonControl:RadioButtonControl
{New(@args)
{
super(@args);
.Xmin=200
}
}
// Controls:#("MyControl.MyButtonControl" 'test') // Fails Cannot find control
// Controls:#(MyControl.MyButtonControl 'test') // Syntax error
New()
{
// super(#(MyControl.MyButtonControl)) // Bad again
super(Object(MyControl.MyButtonControl)) // Works !
// super(Object(.MyButtonControl)) // Works !
}
}



Im guessing part of the issue is with the Construct methods handling of internal classes, Technically the MyControl.MyButtonControl is a "Static" class and this should be possible. Especially since it is possible when you explicitly pass the class internally. This would give us the ability package groups of classes if allowed ...

Any thoughts ?
Z
 
 
#710
Re:internal classes 3 Years, 6 Months ago
I think it is a limitation of the built-in Construct function that is used by Control.Construct

The built-in Construct function does not Eval its argument, it just assumes it is a global name.

The reason it works as Object(...) is because that is getting evaluated.

I am not sure why Construct is built-in. It should be possible to write a replacement that does Eval its argument.
 
 
andrew