ProCodeBlock is one of the easiest templates you will ever use!
It just takes minutes to add it to your app and see the results!
Each ProCodeBlock action centers around two things:
- Removing a program feature or limiting access to it
- Enriching the end user experience by controlling what happens when they try to access the blocked feature
Use the Quick Links below to sees a quick overview of what ProCodeBlock can do for you:
Blocking a Procedure
One of the things that most developers want to do in a demo or limited feature edition of a program is to block access to a procedure. This could be a report, an edit FORM or any procedure.
ProCodeBlock makes this VERY easy to do and creates a 100% Hacker-Proof block!
After you use the Block Procedure template, when the CodeBlock is enabled your regular procedure code will be completely sliced out of the application during the compile! ProCodeBlock will substitute only the code needed to present the end user with the actions that you specify when that procedure is blocked.
You simply add the procedure extension:

Then the default actions you set in the Global extension are used to automatically preset what happens when a user tries to access the CodeBlocked procedure:

You can enable/disable or change settings if needed.
See the online help for more details.
When the user tries to access the blocked feature, they will experience exactly what you want to have happen.
Here is an example of the Standard Message defined above being displayed:

Here is an example of the Help Topic defined above being displayed:

Here is an example of the Website URL defined above being displayed:

[ top ] Blocking with Hand Code
If your a developer who likes to hand code (or if you want finer control than blocking an entire procedure), ProCodeBlock will work for you too!
You can insert code snips in among your regular code to remove sections of it from the compile when the CodeBlock is enabled.
You can also test a global BYTE flag to determine if the CodeBlock is enabled.
Then you can perform your own actions or call the CodeBlock ROUTINE to present the end user with the actions that you specify when that procedure is blocked.
You simply add the procedure extension:

Then the default actions you set in the Global extension are used to automatically preset what happens when a user tries to access the CodeBlocked procedure:

You can enable/disable or change settings if needed.
Usage
For a quick reference there is a “Usage” tab on this extension template that gives you the syntax for using hand code and even buttons that allow you to COPY/PASTE the code to get it exactly right.

[ top ]
EIP (Edit in Place)
If you want to block EIP actions, then you need to use a few lines of hand code in the button embeds to do that. ProCodeBlock provides #CODE templates that you can drop into place to avoid typing if you prefer.

See the online help for more details.
[ top ]
Blocking Multiuser File Access (or preventing multiple copies)
ProCodeBlock also makes it easy to block multiuser file access in your demo or limited feature version.
This can be an additional incentive for end users to buy your full feature program.
ProCodeBlock creates and maintains a special control file to solve this problem. The templates do all the work (you don’t even have to add it to your dictionary).

The file stores the encrypted computer name and compares it at startup. This makes it possible to even block users from having multiple copies of the program (running one at a time) against shared data.
Note: This control file method works better than the traditional method of changing the file mode in Clarion from SHARE to OPEN (which causes your app to crash if you have MDI browses and more than one is opened into the same file).
You simply add the procedure extension:

Then the default actions you set in the Global extension are used to automatically preset what happens when a user tries to access the CodeBlocked procedure:
You can reset them to a simpler action set as shown here:

Then when the user tries to open another copy of the program against the data, they see this message (as defined above) :

Then the second copy of the program will exit.
[ top ]
Limit to a Single Copy
You can also use this feature to only allow a single copy of your program to run at one time.
All you need to do is change the message (or you can uncheck all actions and have a silent exit.
[ top ] Requirements:
- ProCodeBlock is compatible with all Clarion C10 releases
- ProCodeBlock is compatible with all Clarion C9 releases
- ProCodeBlock is compatible with all Clarion C8 releases
- ProCodeBlock is compatible with all Clarion C7 releases
- ProCodeBlock is compatible with all Clarion C6 releases
- ProCodeBlock is for the ABC Template Chain ONLY
[ top ]
|