Upgrading CapeSoft Accessories to Clarion 11.0.13622

Clarion 11, build 11.0.13622 introduces a new feature. This allows for pointers to procedures and methods, as well as what we used to have (classes, queues, various TYPE’s and so on.)
This feature is very cool, but it does extend the requirement of uniqueness - in other words the list of “unique things that can be pointed at” has grown by a LOT and some name conflicts are bound to occur.

When this happens it’s necessary to rename things. Occasionally changing names has a significant impact on things. Alas our Draw Accessory falls into this category.

The Draw class was (unfortunately, and rather unimaginatively) just named as DRAW. At the same time some other classes (Insight Graphing, but also the Clarion PageManager class, and the SV Graph class) have a method named Draw as well. So any pointer to a Draw object, declared like this;

d &Draw

Would result in a new warning message:

Warning Ambiguous Reference Type &Draw.

This is to be expected since the compiler can no longer tell the difference between the Draw (class) and the various methods called Draw. So generally speaking we can change the method name(s) or the class name. Given the ubiquity of the word “Draw” it seems that changing the methods is a losing proposition.

So, conclusion - change the name of the Draw class to (the equally unimaginative) DrawClass. That’s no big deal, and thanks to the magic of templates it’s almost certainly a seamless change.[1]

[1] If you have an object declared in hand-code like this
whatever Draw
change this to
whatever DrawClass

Of course there’s a catch. Draw is one of our “root” accessories - meaning that lots of other accessories make use of the Draw functionality. So they, in turn, are either derived from the Draw class or contain properties that point to the Draw class. So they also need to be updated. the list of affected accessories, and the new required version is;

  • Draw (4.22 or later)
  • DrawShot (1.09 or later)
  • HotDates (2.00 or later)
  • Insight Graphing 2 (2.34 or later)
  • Progress (1.35 or later)
  • NetTalk 10 (10.41 or later)
  • NetTalk 11 (11.44 or later)
  • RightReports (2.04 or later)
  • SendTo 3 (3.39 or later)

So, in summary - if you are updating to Clarion 11.0.13622 you need to update Draw, and any of the others (that you own) in the list above as well.

But wait there’s more…

[2] If you are not on Clarion 11.0.13622 then you think this is all a fuss about nothing? Alas no. Regardless of the Clarion Version if you update any of the above, you will need to update ALL of them (that are in your Clarion system.)

[3] Are any of these paid-for upgrades? No - they’re all free updates.

[4] The two most likely problem products are SendTo 2 (last updated in 2015) and Draw 3 (last updated in 2015). If you are still using these then you will need to upgrade these to SendTo 3 and Draw 4 respectively.

[5] NetTalk 9 and earlier are not affected since they didn’t use Draw.

All builds have been updated and are available at https://www.capesoft.com/accessories/downloads



Very much appreciate the quick, detailed notice about the problem.
Personally, I prefer to see class names like csDrawClass because it can be a big help to my aging memory.


1 Like

If all vendors uniquely prefixed their class modules too, it would be really cool.

1 Like