Hi,
I am migrating an application from Clarion6 to Clarion11. On the dictionary I have a global WindowManager reference.
I converted the dictionary and the application. This is the code that is generated by clarion on both platforms:
GLO:CLARION GROUP,PRE()
FrameWindowManager &CLASS(WindowManager)
END
In Clarion 11, I get compiler errors.
So I deleted the declaration on the dictionary. Now, if I try to create the same group structure, Clarion 11 won’t let me, as you can’t specify the base class inside a group.
If I try to declare the WindowManager object outside of a group, I still get compiler errors. This is the code generated in that case:
GLOREF:FrameWindowManager &CLASS(WindowManager)
This would compile and be usable in Clarion6, but in Clarion11 can’t be compiled.
Is there a way to create a WindowManager reference as global variable in the dictionary?
I know I can do it manually, but this should be doable on the dictionary.
In “Data Type” drop box choose “TYPE” (instead of CLASS), turn on “Reference” check box, and in “Base Type” entry field - “WindowManager” (unquoted), this will be generated as x:FrameWindowManager &WindowManager (“x” is a prefix for my global pool).
As far as I can tell, at least in version 11.0.13244, you can’t declare a reference to an ABC class in the dictionary. Don’t know if this is a bug, or the expected behaviour…
I imagine that you can’t either declare an object of an ABC class on the dictionary for the same reason.
I declared manually on an embed and it is now working.