Hi Ronald;
Assuming you mean Natural’s own event driven interface, stick with it. Reading is fine, “playing” is better. Pick a simple real application. In my case, going back to Natural Lightstorm & New Dimension days, I chose the subscription system for my newsletter (originally written in Fourth Dimension for the Mac). So, yes, I did have experience with event driven programming already.
Most of my event driven experience, however, was as a user of PC and web systems; experience I am sure you have.
Play with the more common Controls like List boxes, Ra dio buttons, push buttons, etc.
In less than a week you will probably be quite comfortable with event driven programming and will wonder why it seemed so complicated to start.
For whatever it is worth, some simple observations:
With PP (procedural programming), the “stream of control” is in code, which invokes objects like Maps. In EP (event driven programming), the “stream of control” is the dialogs, which have code int the “back of” the controls and the dialogs.
In some sense, a dialog is a Map with lots of Processing Rules in the background. A Control is similar to a Field on a Map with Processing rules.
Major difference: The “unit of work” for PP is a Map. You issue an INPUT statement, the user gets to tab around the screen entering/changing data, etc. All during this time, the program (even processing rules) has no idea what is going on. Only when a PF Key, or enter, is pressed, does your program “get control”. By contrast, with EP, the unit of work can be as small as a keystroke. For example, in my subscription system, there is a pull down action for “Select Company”. This invokes a Control which is a List Box. The initial list starts with the letter A. There is a place where I can type say M. The Control where the M is typed reacts to that single keystroke and refreshes the List Box starting from M. If I now type U, the List Box is now refreshed starting with MU, etc. Play with the various events for Controls like “Change”, “Enter”, and “Leave”. For example, have an Input Box. When control is passed to the Input Box (say someone clicks on it), change the color by writing code in an enter event.
It is really quite a bit of fun when you get past the first few days.
steve