Conductor Template 6.3

Introduction
Conductor Template  for Clarion 5~5.5~6.3 ABC/Legacy. White box template to simultaneously generate code at any major embed point of all application procedures (or any subset of them). It might be used for building program security, program log or just for customising functionality of all application procedures from one place without even opening them. Utility is included to easily transfer all embeds from one application to another. 

So delegate all boring repetitive work to this digital slave and spend your time on something more exiting than copying-and-pasting some bit of code over and over again day after day after day! Download 'Try before buy' shareware version of template and test it right in your application. 

Example (based on real story). Your client asks you to get rid of all minimize buttons on all Windows.
In no time you will find out that placing 0{PROP:ICON}='' anywhere after opening window
does the trick - window still keeps the icon, but minimize/maximize buttons go away.
The only problem now to put this code in all windows of your application. If you have 20 of them
it is one story, but what if it is multi-dll application and you are supposed now to repeat this
simple routine 500 times! You are facing many hours of annoying job of opening each procedure,
finding proper embed point, and inserting this magic line of code. It is not uncommon that
clients change their mind. So you have finally done that and are demonstrating them new
minimize-button-free application. All of a sudden new suggestion - to hide those buttons
conditionally. Again it is not a rocket science at all. Something like that would work:
IF GLO:NoMinimize THEN 0{PROP:ICON}=''. The rest is "easy" - 500 times to open
all windows in your application and change this embed...
It is exactly what Conductor template does! You just put this embed into template prompt 
and say - "place it in all windows, or all browses, or all reports after opening window".
There are no restrictions whether on number of such embeds or on length of any particular
embed. So you will find millions of jobs for this useful template it each of your applications.
Every time you think "it would be nice to call this procedure in each Form" or,
say, "I have to assign this window property depending on user level in all browses", 
time has come to employ Conductor template. 
To simplify your life as developer, this template goes even further.
So you can not only broadcast your embeds within any application, but
also transfer whole bunch of such embeds from one application to another.
You can even export those embeds from ABC and import them into Legacy
or other way around. So once you have this template, you should never 
type any line of code second time.
Main advantages:
  • Template reliefs you of the most annoying part of developer's work - repetitive
  • It is transparent white box template, so there are no hidden secrets whatsoever
  • It does not need or do any changes to either Clarion native
    or 3d party templates. It's one of our taboos!
  • It has no overheads (DLLs etc.) so it can be easily added or removed
    to/from an application
  • It can access report controls (new, ver. 63)
Installation
Run the installation wizard. It will guide you through a few simple steps. That is it.
IMPORTANT: If you are using Clarion 5 or 5.5, after selecting Clarion5 or C55 directory wizard
will offer you to install it into C:\Clarion5\Clarion6 or C:\C55\Clarion6 directory respectively. 
So do not forget to get rid of last \Clarion6. But even if you do - it is not a problem.
Just uninstall template and run installation once again.
To start using template you have to manually register it.
Here is instruction: Open Clarion (no application must be open). 
Go to menu Setup -> Template Registry ->Register. Select new template
conductor.tpl and then hit Open button
 View animated reminder on how to do that - Registering Template
(built with our JAVA Animated Help Builder).

Using Template

Template usage is very straightforward. You might want to read and 
look at screenshot emulation below.
1. Open Global -> Extensions and insert Conductor Global template.
2. Type/paste code you want to serialize. Use either Code Text Tab  or Code Lines one.
    It does not matter where you put your code, so it is up to you which prompt to use.
    If you are not going to use the second prompt you can get rid of it completely with 
    Hide this tab checkbox. Though this operation is reversible so you can always get it back.
3. From the Place Tab specify which embed point should receive this code.
   Starting from ver. 6.3,  in case of reports After Opening Window actually places code 
   After Opening Report so you can access both progress window and report controls. 
   TIP: To simplify access to Report controls, wrap you code with 
   SETTARGET(Report) ... SETTARGET() function calls. See the Demo for details. 
4. Finally from Procedures Tab tag which procedure types should receive it
   If nothing is selected this embed will go into all procedures.
   You can use the first and the last couples of  embed points in source 
   procedures as well (Place Tab of the picture below). But you should implicitly 
   specify it by checking the Apply to source procedures checkbox.
   You are free to use this extension as many times as needed.
   Just in case template shows which embed code and in what
   embed point is generated in procedure extension area as well.
   Global extension takes care of procedure area so you can completely 
   ignore procedure extensions.
It is important to understand that what you see here is
just a reminder, so if you want to change this code you should do it
from the Global application extension area only. That is about it!
Installation ships ABC and Legacy examples \Clarion*\Examples\Conduct\
so you can have a look how template is supposed to be used.
But template usage is so simple that you will hardly need it.
Useful Utilities
If you want to quickly make sure that all procedures specified do receive embed 
code, you can set ON Show procedures involved check box on the last Tab of 
respective Global extension and compile the application. You will get the list similar
to this one:
It shows template instance, procedure type, module and procedure name respectively.
To proceed you should set this checkbox OFF or you will not be able to compile application.
It goes without saying you can open source of any procedure and see your code there as well.
To simplify your life as a Clarion developer Conductor template goes even one step further.
So not only can you broadcast you embeds around one application, but also transfer all of them
from one application to another with special utility template which is essential part of Conductor.
To use it follow these simple steps:
1. Open donor application
2. From Clarion Menu Application - Template Utility... launch Conductor wizard
3. Hit Export settings radio button, then Next, then Finish
4. Open acceptor application
5. Delete all instances of Conductor template from Global Extensions
6. Run Conductor wizard once again, but this time with Import settings button ON
You can even transfer embeds from ABC application into legacy or other way around.
It goes without saying template does not do any conversion for you and transfers all
embeds as is. So if you use some ABC specific code like SELF. Request
it is your responsibility to convert it into Legacy.
And just a bit of advise. When using template you should keep in mind that
this code will be in all procedures of yours. So you have to try to write in
more generic way. For instance, it is much better to refer window by it's control 
number like that: 0{PROP:TEXT} = 'Show this text on all windows' rather than
by name: ThisWindow{PROP:TEXT} = 'Show this text on all windows
Some windows can have different names like QuickWindow so you will not
be able to compile such code.
This is the first version of template (6.0 stands for C6 compatible). 
So we will definitely improve it. In particular we would like to make sure
the list of common embeds does cover all your needs. Another question if
the way you can select procedures (by type with option to suspend generation
at any particular procedure) is convenient enough. We could add other scenarios.
So all your comments and/or suggestions are welcome: feedback
Move cursor on top of a Tab to open!

 

Copyright (C) 2002 Vivid Help Systems Pty Ltd