Well I rolled the dice and placed an order to upgrade 5.5 to 11

Well today I placed an order for Clarion EE.

I feel it’s a little like a leap of faith have ducked out of the family at C5.5EE.

Is it still delivered on CD or is it a download these days?

1 Like

Hi Busker

SoftVelocity will email you your licence details including serial number and download information when they have processed the order.

They haven’t delivered anything on CD since the C6 days as far as I know.

Regards

Mark

Cheers Mark.

Thank you.

You’re going to have a good deal of learning, and you’ll undoubtedly bitch a bit that it’s not the same. But you’ll end up quite enjoying C11 :slight_smile:

The lastest update to the language for features such as function pointers has changed the way we now program in clarion.

To begin with we knew it would let us connect to languages like CPP. But we did not realise the extent to which we would use it in place of interfaces within clarion code itself. Now im not a CPP engineer but really the number of situations we have now deployed this new clarion technology is surprising even when using ABC classes in hand code.

By creating new classes some based on ABC and adding new clarion features of clarion 11 has greatly enhanced the power of the language.

Been surprised how much of it I can recall but there are definitely lots of learning points ahead. :smile:

Hi

I would be very interested if you could share how are you are using function pointers in your code.

2 Likes

Gordon smith publish an example of faking function pointers about 15 year ago. not sure where you would find it now i think it was first published in clarion mag.

We have deployed an extension class system for managing events in classes. As part of that is a series of queues that register interfaces to call on events.

Now we can also store an address of a function in the queue and then the event manager can call the interface or now you can also convert the address to a function call.

We also use it to pass dot net delegates to clarion and now clarion can take that delegate and store it as an address and fire it later as a function pointer.

we also use to pass to c code which allows the c code to store the address in a array and later call it as a type def prototyped function.

You can in clarion now have your classes call your function by address.

now you might as why have an event manager in your accept loop. Well say you have a dynamic form in clarion that binds to data at runtime but also the form may bind to another data source at runt time and you dont know when that data source is in focus and you dont know what forms may use the data next.

The event manager sees that a resource is in focus and the can PRIME the form to handle the resource in focus without program direction with implicit statements.

Now your event manager can align possible resource use and the standard paradigm of clarions ABC with its direct browse firm defined generated code can be left behind in as its not dynamic and really while its wonderful for a solution that does not change its not a good solution for resource reuse nor for allowing the code base to cater for dynamic change.

the function pointers in clarion really do change the way you can program your solutions.

For us we already had a large class system outside ABC and one that separated GUI and NON Gui code. The event manager allowed us to link the GUI and NON Gui together without implicit code statements now that function addresses can be stored.

case eventiD
of ServiceID:FormBindControls
EventsFunction &= (eventqueue.Functionaddress)

EventsFunction(eventqueue.ControlInterfaceInstance) ! Bind control to data source by column

1 Like

Thanks a lot Stev. Very interesting ideas to think about.

One of the benefits to this approach is that the event manager doesnt even know you going to select a form even after it sees a resource is in focus but looks up which resources in your program might be able to use the “in focus resource” and set that resource as “in focus” to all related resources. Those resource can now be conditionally bound if they are forms. Now you might say that must be slow. Clarion is compiled code and gets to queues with an index number are very fast. A lot of resources can be processed at any one time.