Introduction
How many times have I added the "About..." screen to my app and wished
that users could just click and go straight to our website? Or that they could
click on the support@capesoft.com and
the new mail message would open up and they could write directly to us. Or have
a list of suppliers with their e-mail addresses and web-URLs in the columns and
be able to click on the URL and go directly to their website?
If you're feeling the same way, then HyperActive is for you! This easy-to-use
and quick-to-add template adds the powerful object functionality, allowing you
to make any control a URL. Your HyperActive control can be a string, a button,
a field in a Drop List, combo or list box, a region, an entry field, a text field,
an image or a panel. The HyperLink can even change color as the mouse crosses
over it (for strings, and list fields), as well as cursor changes. It will take
you less than a minute to add the necessary templates to your application and
make the respective controls HyperActive.
But that's not all...! HyperActive interfaces with your Windows Registry, so
any file, which has a browser/viewer/editor associated with its extension,
can be run with one click. So you can run video clips, music/wav files, open text
documents, etc straight from your application just like you would from your Windows
Explorer.
There's still more! You can make the most of the functionality of HyperActive
and Capesoft's File Explorer combined to open URLs inside your application (Clarion
5.5 only).
Features
-
One Click Hyperlink Controls
-
Make any existing control on your window a Hyperlink to a web
page/file/e-mail address.
-
Hyperlinks in a List Box
- Make a column in your list/browse HyperActive to link to your
browser/mailer.
-
File Explorer compatible
- Make the HyperActive controls send their URLs to your CapeSoft File
Explorer OLE control.
-
Color Highlights
- Make
your HyperActive string and/or listbox control fields change color as the mouse
passes over the HyperLink.
-
Mouse Cursor changes
-
Make your mouse cursor fields change to the hand cursor as the mouse passes
over the HyperLink.
-
Supports all file types
- HyperActive
interfaces with your Windows Registry, so any file,
which has a browser/viewer/editor associated with its extension, can be run with
one click. So you can run video clips, music/wav files, open text documents, etc
straight from your application just like you would from your Windows Explorer.
-
Easy email creation
- HyperActive comes with a small code template
that make it easy for you to create a full email (supports Outlook Express,
Outlook and Netscape) when your user clicks the HyperActive control.
-
Supports ClarioNet and
WebBuilder.
-
Makes handcoding simple
- whether you're an avid handcoder - or not,
the HyperActive object's methods and properties are very easy to code in.
-
Registry checks -
HyperActive can check the registry to make sure that there is a registered
to run your HyperActive control's URL before making it 'Hyper'Active.

Installation
Run the supplied installation file.
Adding
HyperActive to your Application
NB: You must not call
your application Hyper.app.
Making a window control HyperActive is easy.
- Open your application and from the application window click the Global
button.
- In the Global Properties window click the Extensions button.
-
In the Extension and Control Templates window click the Insert button
and select the Activate CapeSoft's HyperActive template from the list
that appears
-
You can read more about the
Global Extension Template
options further down - but lets leave the defaults as is for the moment.
- You will now need to add the local extension
template to the required windows in your application.

Making
a control on a window HyperActive
If you have not done so already, place the control(s) that you would like to
make as Hyperlinks on the window.
- From the application window, open the Procedure Properties window for that
procedure.
- Click the Extensions button on the Procedure Properties Window.
- Click Insert and select Capesoft HyperActive Control from the Class
HyperActive.
- Change to the Options tab and use the List box on the HyperLinks tab to enter the controls to
be used for the Hyperlinks. Check out the Options for the
HyperActive control for more details.
- To customise some of the HyperActive features, you set these on the Options
Tab.
- To ensure that HyperActive operates correctly with some other 3rdparty
templates, you may need to specify settings for those templates on the Other
Products tab in the template.

Options
for the HyperActive Control
Select the Control to make HyperActive.
All controls can be made a Skype URL. Use the URL is Skype function
drop down to enable one of the Skype functions, otherwise leave the URL is
Skype function set to 'None'.
String
Controls:
You can set the highlight color and style of the string control (in the
Highlighted
Appearance group) as the mouse passes over it, as well as the normal color
and style (in the
Normal Appearance group). You can also set the
URL for the string control. If you don't use quotes then the contents of
the variable will be used as the URL.
If the string is a variable, then you need to set the positional width to 'Default'
(in your window properties editor) for that control. This will enable the control
to resize, thus ensuring that the control is only HyperActive when the mouse
is over the text (because the control is the same size as the text).
You should check the
Refresh the Variable URL in the TakeEvent? (variable
URLs only) so that the HyperActive control's properties are correct.
Button, Combo and Item Controls:
The only option for the HyperActive button control is the URL, a string constant
(in quotes) or a variable (the contents of the variable will be used as the URL).
If no URL is specified, then the text of the Button/Item/Combo is used for the
URL.
Entry
Controls:

You can set the appearance of the control (i.e the font color and underline
property). There is no region properties on the Entry Control so the Font will
not change as the mouse goes over the control.
The control will use the entry as the URL, and when the control receives an EVENT:ACCEPTED,
it will run the browser/ mail for the URL that the user entered. You can
override this default method in the following ways:
1. You can specify an Event for the URL in which case it will use the specfied
event instead of the EVENT:ACCEPTED event.
2. You can check the Standard Hyperlink action (Mouseleft and cursor)
checkbox - which will treat the entry control as a normal Hyperlin - so the
cursor will be displayed as the mouse enters the entry control's area. If you
click on the entry control, then the URL will be activated. If the control is
not selected, then the first mouse left click will select the entry control, and
subsequent ones will activate the URL.
3. You can check the Outlook standard action (Ctrl+MouseLeft) checkbox in
order to imitate the Outlook manner of running Hyperlinked URL (similar to (2)
excpet using Ctrl+Mouseleft instead of MouseLeft).
Text
Controls:
You may specify the URL that is used when the control receives an EVENT:ACCEPTED.
DropList
and List Controls:
You need to specify which column contains the URL (
Column Number for URL),
and if the URL is an e-mail address (
URL is Email).
Although the object will defer an e-mail address in a web column to your mailer,
when you select the Email option for the URL type, it allows you to select a
column containing the first and second names of the addressee. Thus when you
click on the Email URL, it will send the names and the Email address to your
mailer.
You can also set the
Hyperlink Color here, and if you're working in
Clarion 5.5 or later, you can select a
Highlighted Color, which will
be the highlight color the URL changes to as your mouse passes over it. In this
case you need to set a
Style Number, and if the list is a browse control,
then you need to check the
This List is a browse checkbox as well.
This
is only for ABC applications.
NB: You will need to check the style option on in your List Box Formatter
window for the URL column. You cannot use this feature with cell colors as well,
so you need to turn the color option off in your List Box Formatter window.
You may require to add something to the URL that is contained in the list box
(like a path). You can use the Embed to Alter URL embedbutton to code
the necessary changes. The variable that contains the URL that will be used is
ReturnValue (which has just been returned from the GetListURL method). So if
you would like to add a path to the URL, then you can just do the following:
if
~instring('\',ReturnValue,1,1)
ReturnValue = path() & '\' & ReturnValue
end
You can enable Handcursor use for this specific column here by checking the
Use Hand Cursor on this Column? checkbox. The checkbox is will be disabled
if you have unchecked the Allow Hand cursor use here? checkbox on the
Details
tab of the local extension template.
Region
Controls:
You must specify the URL to use and you can turn the IMM property on here. If
you leave the IMM off, then the mouse cursor will not change as the mouse passes
over the control.
Other
Controls:
You must specify the URL to use.
General Options for all
controls
You can also override any keycode restrictions that were set on the Options
tab in the local template (by checking the No keycode restriction on
this control).
Details
for the HyperActive Controls associated with this window
On the
Options tab:
| 1.1. |
You can specify whether you would like to use the HandCursor
in this window or not (list box cursor changes are restricted to ABC based
programs) |
| 1.2. |
You can select the event to trigger the cursor change.
If the timer event is not used, then you may prefer to use this event
(which will be set to 8 - if you check the Set Windows Timer checkbox).
Although this is not the most robust method, it is the quickest and easiest.
If you are using WinEvent, then you can use one of the windows events
to trigger the cursor change. |
| 2.1. |
You can also choose to place a keycode restriction on the
HyperActive controls (which can be overridden for each control). |
| 2.2. |
Thus if you want the HyperActive URL to be activated only
on a left click, then you can select the MouseLeft radio button. |
| 3. |
If you have checked the Always check in the Registry
for the Program checkbox on the Global extension template, and you
don't want the registry checked here, then check the Override the
setting in the.... checkbox. Otherwise if you leave it clear, the
registry will be checked for valid URLs. |
Extending
your HyperActive Controls
Extending
your Email URLs
You can easily enlarge your e-mail URLs to contain a full email
message (with subject, body, etc). You can either re-route it through a Clarion
3rdparty Email device (like one of the Nettalk objects) or use your default
email server (like Outlook Express).
Included in HyperActive is a small code template to aid you in doing this (called
the 'Capesoft HyperActive Construct Complete Email'). In the Code template:
You can fill in all the necessary details in the template variables, which will
format it all and put it into the variable that you specify. Note: if you have
variables in the fields above that will change, you need to ensure that this
code template is in the correct place to refresh the resultant variable before
the URL is called, as it will still contain previous values.
Tip:
If you want to insert a line break into your Body, then you need to place
the encoded characters for this there: %0D%0A. The <13,10> is not
supported by all mailers.
Note: HyperActive uses ShellExecute to run
your programs. ShellExecute has a limitation of 512 bytes in the parameters
passed, which means that your long emails may be truncated.
The best place would be to place this in the ThisHyperActive.TakeEvent
routine as follows:
This will ensure that the variable is always correct before the URL is posted
to your mail program.
Alternatively, you can hand code the URL as follows:
EmailLink = EmailName & ' <<' & EmailAddress & '>' & '?subject='
& EmailSubject & '&Body=' & EmailBody
Multi-DLL
Applications
HyperActive is a local class and so is not affected by whether the
application is a single EXE or a Multi-DLL. You need to add the HyperActive
Global Extension Template to each application that requires the use of the Local
Extension Template. You don't need to add the Global Extension Template to
applications that will not use the Local Extension Template.
Translating
the HyperActive Messages
You need to derive the HandleError method and put the translated text you
would like in there. Note: the following example code must be put before the
parent call. Like the following:
case pErrorcode
of 32
pError = 'The specified dynamic-link library was not found. File:|'
of 31
pError = 'There is no application associated with the given file
name extension. File:|'
of 30
pError = 'The DDE transaction could not be completed because other
DDE transactions were being processed. File:|'
of 29
pError = 'The DDE transaction failed. File:|'
of 28
pError = 'The DDE transaction could not be completed because the
request timed out. File:|'
of 27
pError = 'The file name association is incomplete or invalid.
File:|'
of 26
pError = 'A sharing violation occurred. File:|'
of 8
pError = 'There was not enough memory to complete the operation.
File:|'
of 5
pError = 'The operating system denied access to the specified file.
File:|'
of 4
pError = 'The .exe file is invalid (non-Win32® .exe or error in .exe
image). File:|'
of 3
pError = 'The specified path was not found. File:|'
of 2
pError = 'The specified file was not found. File:|'
of 0
pError = 'The Operating system is out of memory/resources. File:|'
else
pError = 'Unknown ShellExecute Error occured. File:|'
end
The
HyperActive Templates in more detail

The
Global Extension Template
- You can globally prevent all HyperActive code from being generated by checking
the Disable all HyperActive Features check box in the Debugging group.

- You can set the default colors and styles for the HyperActive strings on
the Options tab.
These will simply be the default colors when the string control is added to
the HyperActive control list in the local extension template, and won't override/set
existing string control colors. It's a good idea to set these up here so that
your HyperActive controls are consistent throughout your application.
- You can automatically ensure that your registry is searched for a program
to run your URLs by checking the Always check in the registry for the Program
checkbox. This is overrideable in the HyperActive local extension template.
- If you would like to specify a different Hand cursor (other than the
default 'Hand2.cur'), then you can enter your own filename (or equate or
variable containing either) in the Handcursor File/equate entry
field. If you entered a filename and you would like the template to add your
file to the project, then check the Add the handcursor (if it's a
file) to the project checkbox, otherwise leave it unchecked.
- If you would like to place your HyperActive TakeEvent after the parent
call of the ThisWindow.TakeEvent, then check the Handle HyperActive
Events after the TakeEvent. This will mean that you can put code to
change variable URLs in the TakeAccepted for buttons, etc. In some older
versions of Clarion, if the TakeEvent is placed after the parent call the
code won't run (sporadically).

- On the Email Options tab you can to turn on email URL encoding (check the Automatically Encode
Email URLs to do this). This is useful to maintain the format of your
emails (linefeeds/carriage returns), but is not supported by all mailers.
Outlook Express, Outlook, Pegasus, and Eudora all support encoded mails, but
Incredimail does not and the encoded characters are not filtered. Netscape
does not support it, although the encoded characters are not displayed, simply
filtered out.
- HyperActive uses ShellExecute to post URLs to the various programs. ShellExecute
has a limitation of 520 characters in older OSs - Win95, Win98 & WinNT.
You can force your email URLs to be clipped, or not or let HyperActive decide
based on the OS. Use the options in the Handling long email URLs to
select which option you would like (Clip based on the OS is the default).
- If you would like to use your own class (derived from the HyperActive class)
then switch to the Class tab
and enter the name of the class in the HyperActive Class field and
the Class header file name in the Class Declaration File field.
Using
HyperActive with Other Templates
With
WebBuilder
With
FileExplorer
With
XPlore
With
ClarioNET

Using
HyperActive with WebBuilder (C55 Users Only)
You can use HyperActive in WebBuilder applications from version 1.3 onwards. At
present, the following controls are supported: strings, images and buttons. You
can make any of these controls HyperActive in the normal way without having to
alter the controls on the WebBuilder template.
If you are using images and/or buttons then you must
run the HAConv.exe application (or
edit the htm source yourself) that ships with HyperActive. There are some
changes required in the default htm files for buttons and images.
This application is found in your c55\3rdparty\bin directory. You will need to
run the changes for each button/image htm file that your application/s use. The
default htm files are in the c55\bin\skeleton\default directory. Run the HAConv
program and you will see menu on the menubar: 'Convert File'. This menu allows
you to select either the Button or the Image file to convert. Once clicking either
item, a FileDialog box will appear allowing you to select the file to convert.
If the conversion has already been performed on the file, then the conversion
is not attempted. You will be informed by a message box. If the file has been
corrupted or some critical HTML lines have been removed/changed, then the conversion
will be aborted informing you that the htm file cannot be converted.
Steps in Implementing the use of WebBuilder (assuming you have already
implemented both templates in the documented fashion):
- In the Global Properties window of your application, click the Extensions
button and highlight the Activate Capesoft's HyperActive template in
the list.
- On the General tab, ensure that the Allow WebBuilder Support
check box is checked.
- Click OK a couple of times to return to the Application Tree window.
- The WebBuilder support will now (by default) be active on all the supported
controls that are HyperActive.
- You can disable each control individually from being supported by WebBuilder
if you like. There is a check box on each supported control's HyperLink window,
which you can check. By default, the check box is not checked (i.e. WebBuilder
supported).
If you want to edit the html
source files yourself (instead of using the HAConv program) you must do the following:In
the image.htm file you need to place the following lines of html code:
<TSSCRIPT tag=a attr=href
value="ImageLink"> !This
goes immediately before the line: <a><img></a> in the htm file.
</TSSCRIPT>
!This
goes immediately after the line: <a><img></a> in the htm file.
In the button.htm file you need to place the following lines of html code:
<TSSCRIPT tag=input attr=type
value="ButtonType">
<TSSCRIPT tag=input attr=onClick value="onEvent">
!Find the line <TSSCRIPT omit="Icon != ''">
and then find the line after that <TSSCRIPT tag=input attr=name value="Name">.
Insert these two lines immediately after this line.
</TSSCRIPT>
</TSSCRIPT>
!Insert these two lines immediately
after the line <input
type="SUBMIT" value="Text" name="NAME">.
You will see that there are a number of lines with the same syntax located here.

Using
HyperActive with FileExplorer (C55 Users Only)
You can set up HyperActive to use your File Explorer control instead of your browser.
Your URL will then be opened directly in your app using File Explorer. You must
have the HyperActive and the File Explorer controls on the same window, but not
all of your HyperActive controls need to send their URLs to File Explorer. You
may send all of your controls to File Explorer or select which ones use File Explorer
and which ones use your browser.
Steps in Implementing the use of File Explorer:
- Open your Procedure Properties Window for the procedure which has
the File Explorer Document Viewer Control Template and the HyperActive Extension
template populated.
- Click on the Extensions button and highlight the Capesoft HyperActive
Controls local extension template in the Extension and Control Templates
window that appears.
- Click on the Other Products Support tab.
- Check the Enable FileExplorer support check box.
- Select the File Explorer OLE control from the drop list. You must have
already added the File Explorer Document Viewer Control template to this window
or there will be no controls in the drop list.
- You can either check the All HyperActive controls to use FE, in
which case all the HyperActive controls will use the File Explorer OLE
to browse the document, or you can leave this unchecked and activate each
control that you require to use the File Explorer OLE to send the URL.
- If you would like to activate individual controls, then go back to the
HyperLinks tab and select the controls (one at a time) and click on
the Properties button. In the HyperLinks window that appears, you will
notice the File Explorer support for this control group with a check box in
it. Check this check box (This Control uses FE) in order to force this
control to use File Explorer only.

Using
HyperActive with XPlore
You can set up HyperActive to support XPlore features in list boxes. This pertains
specifically to column order swapping at this stage. Thus when columns are swapped,
then the HyperActive will "follow" the column that has been changed.
Xplore does not support Styles at the moment, so the hot style effect available
in C5.5 will not be available when using Xplore concurrently.
Steps in implementing the use of XPlore:
- Open your Procedure Properties window for the procedure which has
the Xplore template and the HyperActive Extension template populated.
- Click on the Extensions button and highlight the Capesoft HyperActive
Controls local extension template in the Extension and Control Templates
window that appears.
- Click on the Other Products Support tab.
- Check the Enable XPlore support check box.
- Nothing else is necessary.

Using
HyperActive with ClarioNET
HyperActive supports ClarioNET almost completely. It is very simple to add the
necessary modifications to cater for the ClarioNET support. The Hyperlinks will
be activated in the client, care must be taken that when links to files are activated,
the files are in the correct places according to the directory specified.
As with normal applications, you can hyperlink almost any control - strings, entry
controls, images, list boxes, drop combos, drop lists, etc. You can make your
HyperActive controls contain weblinks, email addresses, files, etc, whereas if
you use the native ClarioNET hyperlink control, you can only use a button, and
the hyperlink must be to a web URL. If you are running you server out of ClarioNET
mode, then the HyperActive control will still behave normally.
Steps in implementing the use of ClarioNET:
- Open your Global Properties window for the server application and
click the Extensions button to bring up the Extension and Control
Templates window.
- Highlight the Activate Capesoft's HyperActive template in the list
on the left and check the Enable support for ClarioNET checkbox
that appears on the General tab on the right.
- Press OK a couple of times to get back to the application tree and save
and quit your application.
- Load your ClarioNET Client application.
- Open your Global Properties window for the client application and
click the Extensions button to bring up the Extension and Control
Templates window.
- Click the Insert button and select the GloHyperActiveForCN
- Activate Capesoft's HyperActive for ClarioNET Client template.
- If this is a multi-DLL application, then you need to check the relevant
settings on the Multi-DLL tab.
- If you are using an object derived from the HyperActive class, then you
need to set the file, class and object name that you are going to use on the
Class tab.
- Press OK a couple of times to return to the Application Tree.
Limitations when using ClarioNET:
- You cannot use the cursor change feature that is native to HyperActive,
as ClarioNET does not support the timer event, and it does not support cursor
files for cursor changes.
- Great care must be taken when hyperlinking to files, that those files are
in the correct place on the client.
- In Clarion 5.5, the style feature is not supported, so the HyperLinks in
a list box will not change color as the mouse goes over them.
- The Registry check feature is not implemented in conjunction with ClarioNET
as yet.
Example
There are 2 examples in your \Clarionx\3rdParty\Examples\HyperActive directory
(one for legacy and one for abc).
In Clarion 5.5 (and up) there are additional examples showing the interface between HyperActive
and FileExplorer (one for legacy and one for abc) in the \Clarionx\3rdParty\Examples\HyperActive\HyperActive&FileExplorer
directory, and the relationship between HyperActive and WebBuilder in the \Clarionx\3rdParty\Examples\HyperActive\HyperActive&WebBuilder
directory.
You will be able to see how to select the FileExplorer control depending on the
file type in the HyperActive and File Explorer example exe.

Using
the HyperActive Objects
Methods
Properties
Source Code Examples [NB for Handcoders]

Methods
| AddItem |
(LONG HyperControl,
STRING HyperURL, <LONG NormalColor>, <LONG BrightColor>, <LONG
Features>,
byte UseStdAction=0) |
This method creates a queue containing each
HyperActive control and it's relative details. Parameters:
HyperControl - the field ID of the control.
HyperURL - the column (in a list box) or URL string of the URL to run.
NormalColor - the normal color of the control.
BrightColor - the bright/highlighted control of the URL control
Features :-
List Controls - the style number for the normal color. If negative, then
the Handcursor will be used for this HyperActive column.
UseStdAction - for entry controls. Make Entry Controls behave like Std
HyperLinks. |
| AddString |
(LONG HyperControl,
STRING HyperURL, <LONG NormalColor>, <LONG BrightColor>, <LONG
NormalStyle>, <LONG BrightStyle>, <LONG Reserved>) |
This method creates a queue containing each
HyperActive control and it's relative details for strings and prompts.
Parameters:
HyperControl - the field ID of the control.
HyperURL - the string of the URL to run.
NormalColor - the normal color of the control.
BrightColor - the bright/highlighted control of the URL control
NormalStyle - the style attributes of the control normally
BrightStyle - the style attributes of the control when highlighted.
Reserved - for later use. |
| Init |
(<LONG
UseHandCursor>,
byte pOptions=0) |
Sets up the links to the browsers, and mailers.
Sets up the Event to use for the Handcursor and whether the handcursor
is to be used. Initializes each of the controls using the InitControl
method. Parameters:
UseHandCursor - the event to use for changing the cursor when the mouse
is on the URL (lists). Omit or clear if HandCursor is not required.
pOptions - a bit loaded flag, b0 does not perform the prop:buffer
setting. |
| TakeListEvent |
() |
Changes the cursor to the handcursor (if required)
if the control is a list and the mouse is over the URL in the list. It
also changes the cell's fontstyle (for C55 and if required) to the Bright
style. |
| Refresh |
(LONG HyperControl=0) |
Must be called after the window is resized/
moved. Calls SetControlProperties to move/resize the regions around the
HyperActive controls that do not receive events (strings/prompts/images/etc)
and set other changed properties. If HyperControl is passed, it just refreshes
the passed control. |
| Run |
(<LONG HyperControl>,
,long limitURL=0) |
Runs the URL set in the self.URLToRun property
(this must be set before this method is called). It first checks whether
the URL is a web or mail address. The HyperControl parameter is useful
if you would like to change a URL based on the HyperActive Control.
LimitURL - Clear for no limit, else indicate the characters to limit to,
set to -1 to let HyperActive decide based on OS. |
| SetStyle |
(LONG HyperControl,
LONG ListColumn, LONG ListRow,LONG Style) |
Does not perform anything in the parent method,
but places a method for the template to generate some source locally. |
| TakeEvent |
() |
Handles the various events that HyperActive
requires. The MouseIn and MouseOut events are used for changing styles.
The Sized event is used for calling the Refresh method. The Accepted event
is used for running the URL (by calling the Run method). |
| GetListURL |
(LONG HyperControl,
STRING HyperURL, <STRING FirstEmailName>, <STRING LastEmailName>)
,STRING |
Assemble Email URL from the columns provided.
If the HyperURL parameter does not contain the '@' character, then the
HyperURL is simply returned unchanged. Once assembled the form will be
"FirstName LastName <URL>". If the URL is a web address,
then the URL is passed as is to the Run method. This method also
adjusts the URL according to which default Mailer is used. Returns the
correctly formatted mail URL. |
| ChangeURL |
(LONG HyperControl,
<STRING URLLink>) |
This method is used to change the URL of a
control (not applicable for list box controls). Hypercontrol is the field
USE variable, and URL is the string to change the URL to. If the URL is
different from the existing one, then the Refresh (for that control) method
is called automatically. If the URLLink is omitted or clear, then the
URL (for the HyperControl) is cleared. |
| GetHTMLString |
(STRING StringSent,
<LONG Options>, <STRING Reserved>), STRING |
This method is used to ensure that a normal
web URL is correctly syntaxed. This function is used to support WebBuilder.
StringSent is the Std URL (like 'www.capesoft.com').
Options determines how the URL passed is formatted. (See comments in the
object source for details). The correctly syntaxed URL is returned. |
| ChangeColumn |
(LONG Control,<STRING
OldColumns>,<STRING NewColumns>,<LONG Options>),LONG |
This method is used to save changes to the
order of the columns in a list box. This will ensure that the correct
colours and hyperlinks are activated as the column orders change.Parameters:
Control - index Number of the List box
OldColumns - a group of longs containing the changed columns (if omitted,
the method does an auto check based on the Header of the column to see
which columns have changed)
NewColumns - a groupo f longs containing the new columns that the OldColumn
group should be changed to. It is imperitive that the column correct order
is used for both parameters passed.
Options - reserved for later use.
Returns: 0 for no error, or else returns the errorcode (2 for failing
to substitute columns). |
| SetControlProperties |
(LONG HyperControl,
<LONG CreateRegion>) |
This method is sets the properties(eg. hide,
disable, font, etc) of the HyperActive controls that require them. It
is advisable to use the Refresh method rather than this one. Parameters:
HyperControl - index No of the control
CreateRegion - flag to indicate whether this is initialising or just updating
the settings. |
| SaveFormat |
(LONG HyperControl,
<LONG FreshQueue>) |
This method is used to save the format of the
list box. It stores the details of each column header in a queue for reference
by the ChangeColumn method. Parameters:
HyperControl - index No of the control
FreshQueue - bit loaded options flag. B0 - add/update, B1 - free/Nofree |
| SetActive |
(LONG HyperControl,
BYTE ActiveFlag=1)
,LONG |
This method is used to set the HyperControl
to an active or inactive state. Parameters:
HyperControl - index No of the control
ActiveFlag - 1 to set the control active and 0 to de-activate the URL.
Returns a 1 for success and a 0 for failed. |
| RegCheck |
(string FileName,
<long options>),long |
This method is used to check a URL to see if
there is a program to run it in the registry. Parameters:
FileName - the name of the URL to be tested.
Options - Reserved for later use.
Returns a 1 if a registry entry exists to run that URL and a 0 for a failed
registry check. The OpenProgram property contains the Program that will
run the file. If the Filename contains a WebLink or an Email address,
then the HyperBrowser or the HyperEmail properties will be also contain
the OpenProgram property. |
| FormatString |
(string ToBeFormatted,
string Surround),string |
This method is used to retrieve a string inside
quotes, brackets, etc.
Parameters:
ToBeFormatted - the string to be formatted
Surround - the encasement character(s)
Returns the string encased in the Surround characters. |
| HandleError |
(long pErrorcode,
string pError,
string pHeader) |
This method is used to handle an error when
running the URL.
Parameters:
pErrorcode - the errorcode of the error occuring
pError - the label of the error that occured
pHeader - the header to display onthe message. |

Properties
| URLStringSize |
equate(4096) |
The global size used for URLs in this object. |
| ItemQtype |
queue,type |
A list of all the controls with hyperlinks |
| Control |
long |
Control Index Number (field equate of the control) |
| URL |
string(URLStringSize) |
Fixed URL for the Control |
| Normal |
long(color:none) |
Normal Color for list cells and strings. |
| Bright |
long(color:none) |
Bright color for list cells and string. |
| InActiveColor |
long(color:none) |
The color to use when a control is InActive. |
| Style |
long(0) |
Style Number (for column) for list controls |
| Column |
long(0) |
Column number of the cell containing the URL in a list control |
| Underline |
byte(0) |
Indicates whether to underline a string control or not. |
| UseEvent |
long(0) |
Indicates the event to trap to run the URL (by default,
event:accepted). |
| Working |
long(0) |
Indicates the current row that the mouse is over in a list
box |
| Handcursor |
byte(0) |
Indicates whether the handcursor is required for the control
or not. |
| NormalStyle |
long(0) |
The style attributes for a string/prompt control |
| BrightStyle |
long(0) |
The style attributes for a string/prompt control when highlighted. |
| Active |
byte0) |
The Active byte is used to disable the URL (for eg. if an
invalid URL is applied). |
| UseStdAction |
long(0) |
The keycode to use (for Entry controls) if event:accepted
is not used to run the URL. |
|
end |
|
| TrackerQtype |
queue,type |
A list of all the columns in a list Box - used for tracking
column order changes |
| Control |
long |
Control Index Number (field equate of the control) |
| OldFormatCol |
string(255) |
Header of the Column |
| ColumnNo |
long |
Current column Number |
|
end |
|
| ItemQ |
&ItemQType |
An instance of the ItemQType, because you can't declare
queues within a class structure. |
| HyperBrowser |
cstring(256) |
Web browser call (now obsolete) |
| HyperEmail |
cstring(256) |
Email call |
| HandCursor |
long(0) |
Flag to indicate (if not 0) which event must be used for
the cursor change. |
| ListURL |
string(URLStringSize) |
The URL that is obtained from the cell that is clicked. |
| Inited |
byte(0) |
Indicates that the PreInit method has been run. |
| URLToRun |
string(URLStringSize) |
This is the string used for the URL that is run. It is set
in the TakeEvent method. |
| TrackerQ |
&TrackerQType |
An instance of the TrackerQType, because you can't declare
queues within a class structure. |
| OpenProgram |
cstring(256) |
This contains the Program that is used to run the URL. This
variable is populated by the RegCheck method - for information only. |
| CheckURLs |
byte(0) |
Set to auto-check URLs inside the objects (URLs checked
in the Refresh method). |
| EncodeEmails |
byte(0) |
Set this to encode emails to maintain the format
in the subject (linefeeds/carriagereturns). Not all mailers support encoded
URLs. |
| LastFieldSelected |
long |
The last HyperActive control that
was selected/activated. For internal use. |
| HandCursorToUse |
string(255) |
This property contains the
filename (or equate) of the cursor to use when passing over the
HyperActive controls. |
| LimitURL |
long |
To clip the length of an email
URL set this property to the desired length. To use the maximum length
for the OS used, set this property to -1. If 0, then no clipping is
applied to the email URLs. |
| URLisNotAnEmail |
long |
If you set this property, then
URLs containing the '@' character will not be treated as email URLs, but
will forced to the browser. |

Source Code Examples [NB for Handcoders]
| ThisHyperActive.HandCursorToUse
= '~hand2.cur' |
!Sets the cursor to use when hovering over a
HyperActive control. |
| ThisHyperActive.Init(event:timer) |
!Initialises the HyperActive object and will ensure
that the cursor changes on the Timer event when the mouse passes over
a URL in a List box, the cursor changes to the hand cursor. |
| ThisHyperActive.CheckURLS =
1 |
!Setting this property will ensure that the URLs
are automatically tested (except in list boxes) before the control is
made 'HyperActive'. |
ThisHyperActive.AddString(?MyString1,
'www.capesoft.com',color:purple,
color:blue,FONT:Regular+FONT:Underline,
FONT:Bold) |
!This adds an existing string control to the HyperActive
control queue. The string control will appear in purple and underlined.
When the mouse passes over it, the text will change to bold blue (no underline).
The URL used when the control is clicked is 'www.capesoft.com'. |
ThisHyperActive.AddItem(?MyList,2,
color:purple,color:blue,4) |
!This adds a list control to the HyperActive control
queue. The URL used will be in column 2 of the list. When the mouse passes
over this control (Clarion 5.5 only) the text color will change from blue
to purple. |
| Capesoftweb='www.capesoft.com' |
|
| ThisHyperActive.AddItem(?MyImage,
Capesoftweb) |
!This adds an image control to the HyperActive
control queue. The URL address that is used will be 'www.capesoft.com'.
If the CapeSoft web is changed, then you need to call ThisHyperActive.ChangeURL. |
| case message('Use the co.za
Site?', 'Question',icon:question, button:yes+button:no) |
!Which site would the client like to use? |
| of button:yes |
|
ThisHyperActive.ChangeURL(?MyImage,
'www.capesoft.co.za') |
!Change the URL site to the co.za site. |
| end |
|
| ThisHyperActive.Refresh() |
|
In the TakeEvent method you must have a call to
the HyperActive TakeEvent method as follows:
ThisHyperActive.TakeEvent()
If you have a variable registered as your URL for
a particular control, like your AddItem call is:
!It
is not necessary to use the URL parameter
!when
using the text of a string control
ThisHyperActive.AddString(?MyTestString,,color:purple,color:blue,FONT:Underline)
Then you need to have a call to change the URL
when the screen text changes, e.g.:
ThisHyperActive.ChangeURL(?MyTestString,?MyTestString{prop:text})
!If
you omit the URL parameter, then the URL will be cleared.
If you would like to manually check the URL, you
can issue a call to the RegCheck method as follows:
if
ThisHyperActive.SetActive(?MyTestString,|
ThisHyperActive.RegCheck(?MyTestString{prop:text}))
!This
will perform the registry check and set the
!control active at the same time
end
You must also have a call to the HyperActive Kill
method (before you return from the procedure) as follows:
ThisHyperActive.Kill()
If you would simply like to run a URL at some
point in your program, then you can just use the following code to do this. In
this case it is not necessary for any of the above methods to be called, unless
you are using an Email URL. The only code (unless in the case of the exception
described) required is the following:
ThisHyperActive.UrlToRun
= 'www.MyWebsite.com'
ThisHyperActive.Run()
Frequently
Asked Questions
Email URL issues:
General URL issues:
Window Behavioral Errors:
General:
1.1. Can I add
an attachment to my email URLs?
Answer: No - this is not possible (using ShellExecute - which is the technology
that HyperActive uses).
1.2. How
can I use name data not in the list box with HyperActive's email capability?
Answer: You can place the following (example) code in the embed before the
call to the parent.run method. This Embed will normally be the: HyperActive
| ThisHyperActive | Run | 2) Before the Parent Call.
if instring('@',self.URLTORun,1,1)
!Check for email address
if self.URLTORun[1] <>
'"'
!Check that name does not exist already
!Note - You could place the Hyperactive Construct Complete Email code template
!here if you want more extensive email formatting.
self.URLTORun
= '"' & NameToUse & ' <<' & clip(self.URLTORun) &
'>"'
end
end
1.3. Which Email
packages does HyperActive support?
Answer: Outlook, Outlook Express, Netscape, IncrediMail, Pegasus and Eudora.
If your mailer is incompatible with HyperActive, please contact: support@capesoft.com.
1.4. When
I click on an e-mail Hyperlink in my browse/list box I get the following
Outlook/Outlook
Express error:
- "The command line argument is not valid. Verify the switch you are
using".
-
- Answer 1: Your Email package is not set-up to receive standard parameters.
Go to your HyperActive Global Extension and on the Email Options tab, check
the Automatically Encode Email URLs checkbox.
- OR -
- Answer 2: Your Email package is not set-up to receive the standard Outlook
and Outlook Express parameters. When you check the "URL
is Email" check box in the list box's HyperActive properties, the
URL will attach the data in the column(s) specified in the Mail Name fields
as the addressee's name. Thus, the addressee's name will appear in the 'To:'
field instead of the e-mail address. If you uncheck the "URL is Email"
check box in the list box's HyperActive properties the problem will disappear,
but the addressee's e-mail address will appear in the 'To:' field (instead
of their name).
1.5. How
do I format an email string containing 2 addresses?
Answer: You need to insert the comma ',' and space ' ' characters between
each address.
1.6. How
do I place a Carriage-Return/Line-feed into the body text of my mail?
Answer: Encode them.
1.7. The
Hyperactive template seems to change the CR/LF pairs from <10,13> to %0D%0A
in my email text. How do I stop this?
Answer:
You can turn email encoding off on the Global
Extension Template. Most email clients don't require their mail to be
encoded, but some do. By default encoding is turned on - if you turn encoding
off, then some email clients will not support your messages.
1.8. How
can I redirect my email URLs to run another program (other than my default
mailer)?
Answer: In your procedure (with the HyperActive Local Extension template), go to the embeds, and find the ThisHyperActive | Run | Before the Parent Call embed and place the following code:
if instring('@',self.URLToRun,1,1)
RunMyownMailer()
else
In your procedure (with the HyperActive Local Extension template), go to the embeds, and find the ThisHyperActive | Run | After the Parent Call embed and place the following code:
end
1.9. My
email text is being chopped off in my mailer.
Answer: Some mailers (like Eudora) chop text off after an & or ?
character. Even if you encode these characters, the mailer will still chop the
rest of the text off. Change the & character in your text to 'and' and the ?
to some other character.
1.10. I've got an '@' in a URL that's
not an email address. How do I tell HyperActive?
Answer: You need to set the URLIsNotAnEmail property before
the HyperActive.Run parent command is called. You can either do this in the
derived ThisHyperActive.run method (before the parent call), or else in your
code after setting the URL. This property is not cleared in the HyperActive
classes at all, so you can set it once for the whole procedure (if all your URLs
are not email URLs). Otherwise you need to clear it after the parent.run method
in the derived ThisHyperActive.run class to avoid your true email URLs being
classified as false email URLs.
2.1. How
can I tell HyperActive to differentiate between valid and invalid URLs in the
list box so that invalid URLs don't appear as links?
Answer: You can place the following (Example) code in the HyperActive |
ThisHyperActive | Run | 2) Before the Parent Call embed. (This is so that the
links don't run)
if self.RegCheck(self.URLTORun)
parent.Run (HyperControl)
else
!Don't run the URL if it is
not an Email.
end
exit
Then place the following (example) code in the HyperActive | ThisHyperActive.Refresh
| After the Parent Call embed. (This is so that the cells don't appear as HyperLinks)
!This code goes through the queue
finding any invalid URLs and resets the style to 1.
loop X# = 1 to records(Queue:Browse:1)
Get(Queue:Browse:1,X#)
if ~self.RegCheck(Queue:Browse:1.sup:EmailAddress)
Queue:Browse:1.sup:EmailAddress_Style = 1
put(Queue:Browse:1)
end
end
2.2. How
do I alter a URL in list's column after it is clicked on?
Answer: There is an EMBED point which you can access via the Local
Extension Template, where you can code the necessary changes.
For example, if you wanted to add a subject to an Email URL, you could place
the following code in this embed:
ReturnValue = clip(ReturnValue)
& '?subject=My subject'
2.3.
When the highlighter moves over the browse, the web site urls are replaced with
numbers.
Answer: It looks like the Column has STYLE ticked on? (this is
checkbox in the HyperActive Local Extension Template), but you do not have the
Style attribute for the list ticked on.
1. Open the window formatter window and right click on the list.
2. Select the List box format... from the menu that appears.
3. In the List box formatter, highlight the HyperActive field. and make sure
that the Style is checked.
If this is a handcoded (not a template driven) list box, then you'll need to
add a LONG variable to your queue (that is displayed in the list) as follows:
MyListQueue
queue
MyURL
string(255)
MyURLStyle
long
!Add this variable
end
2.4. I
only want my Hyperlinks to be HyperActive if they are valid hyperlinks - can I
do this?
Answer: You can automatically ensure that your registry is searched for a program
to run your URLs by checking the Always check in the registry for the Program
checkbox in the Global Extension
Template. This is overrideable in the HyperActive local extension template.
2.5. I
want to modify the URL in a List box before HyperActive runs the link. How do I
do this?
Answer: ThisHyperActive.GetListURL is the method where you can put
your code. The code that the template puts there is (for example):
if (HyperControl = ?Browse:1)
Get(Queue:Browse:1,choice(?Browse:1))
HATempVar = ?Browse:1{proplist:mouseupfield}
case ?Browse:1{proplist:FieldNo,HATempVar}
of
where(Queue:Browse:1,Queue:Browse:1.sup:WEBSITE)
ReturnValue =
parent.GetListURL(HyperControl,Queue:Browse:1.sup:WEBSITE)
end
end
You can put your own code before the template generated code. Return directly
from your code with the changed link.
For example:
if (HyperControl = ?Browse:1)
Get(Queue:Browse:1,choice(?Browse:1))
HATempVar = ?Browse:1{proplist:mouseupfield}
case ?Browse:1{proplist:FieldNo,HATempVar}
of
where(Queue:Browse:1,Queue:Browse:1.sup:WEBNAME)
Return
(parent.GetListURL(HyperControl,Queue:Browse:1.sup:WEBSITE))
end
end
2.6. I
want to run a URL from source (without being linked to a control). How do I do
this?
Answer: Simply code the following where you want to run the URL:
ThisHyperActive.URLToRun = MyURL
ThisHyperActive.Run()
2.7. I
want to modify a URL before it is run. How do I do this?
Answer:
You
can replace (or modify) the URL that is run by putting the following code (for
example) in the “ThisHyperActive.Run” embed “before the parent call”.
If
Clip(PROLIN:LINK) <> '' !If
my URL string is not empty
Case HyperControl
Of ?PROLIN:Description !If
it is the right entry control
Self.URLTORun = PROLIN:LINK
!Change URL string
End
End
2.8. I
can't get my web url to run. It keeps coming up with a Shell Execute error: The
specified file was not found.
Answer: You're probably using a non-standard web URL
like support.capesoft.com. You should always use the correct syntax http:// as a
prefix to your web URLs. HyperActive will recognise www. as a web URL (without
the http:// prefix) - but with non-standard URLs you need to specify the Http://
- otherwise it thinks that the URL is a file.
2.9. HyperActive loads the
incorrect browser when I click on a weblink. What am I doing wrong?
Answer: The place to check is your Windows Registry
to make sure that your browser has been registered correctly.
-
Run Regedit (Windows-R, and type in Regedit and hit
enter).
-
In the HKEY_CLASSES_ROOT\.htm section you'll find a
default value (for FireFox it'll be FirefoxHTML) - we'll call this the <webbrowserdefaultname>.
-
Find the HKEY_CLASSES_ROOT\<webbrowserdefaultname>\shell\open\command
(for FireFox: HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command).
The default value should point to the name of your browser's exe. For
FireFox this will be: C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -url "%1"
-requestPending
3.1. My
tool tips are inoperable when adding the HyperActive local extension template.
Answer: You need to add controls to the HyperActive controls list. If
don't require HyperActive controls on this window, then delete the HyperActive
local extension template.
3.2. When
I resize my window, the HyperActive controls (like the strings,etc .) are misplaced.
What must I do?
Answer: Some third party tools interfere
with HyperActive's repositioning of the regions underneath the passive controls
(strings, prompts, images, etc). You need to place the following line of code
after other resizing has taken place:
ThisHyperActive.Refresh()
4.1. I
am using the Registry checking feature, but my string URLs are not HyperActive.
Answer: You are probably using a variable for your URL. You need to check
the 'Refresh the URL in the TakeEvent?' checkbox on the HyperActive local extension
template details for that control, or place a call to the ChangeURL
method when the URL must be changed (see Source
Code Examples for details).
4.2. I
have a region which I have made HyperActive. The URL works, but the cursor does
not change as the mouse goes over the region.
Answer: You need to set the IMM property of the region control. You can
do this in your Window Formatter window or in the HyperActive Extension entry
for that control (see details).
4.3. I
have a string control with a variable as the text (e.g. a HotField/locator on
a browse). HyperActive does not work on this control. I can't click on the control,
the cursor does not change and the string's font is the same. What must I do?
- Answer: HyperActive creates a region
'under' controls that don't receive events like string controls, prompts,
images, etc. When the string control is created, it initially has a size 0
(unless you fixed the size in the string controls position properties), thus
the region will also be of size 0. If you have a hotfield associated with a
list, then you can simply check the 'Refresh the variable
URL in the TakeEvent' check box on the string control's entry in the HyperActive local extension
template. Alternatively, when the
string's text property changes, you need to place a call in your code for
the method 'ThisHyperActive.ChangeURL'. This will ensure that the size of
region created around the control is the same as the control's. NB: You must
also set the width of the string to default (this will ensure that the
control's width is the same size as the string text).
4.4. I
have a HyperActive string control on a window. When I click the control it generates
an error: ?(2) The specified file was not found. File s60?. What am I doing wrong?
Answer: This probably means that you have not filled the correct information
into the URL on the local extension template for that string control. You need
to enter the variable or constant to inform HyperActive of the URL that must be
run.
Check the Clarion docs on FORMAT and the use of the style attribute (specifically).
4.5. I
have a legacy application and my list box URLs don't change color when I pass
the cursor over them.
Answer: The styling in lost boxes is only available in ABC
applications.
4.6. I
would like to use another cursor other than the default 'hand2.cur'. How do I do
this?
Answer: You can set a different default cursor in the
Global Extension Template
- which will force your cursor to be used throughout your
application (instead of the default hand2.cur).
4.7. I'm
cannot implement ABC Greenbarring and HyperActive styles conjointly. How do I do
this?
Answer: Basically you need to override the code that the ABC
greenbarring template puts into the source module in 2 places. If you go into
your embeditor and find the BRWx.Fetch method you will find something like the
following template generated code after the parent call:
LOOP GreenBarIndex=1 TO RECORDS(SELF.Q)
GET(SELF.Q,GreenBarIndex)
SELF.Q.sup:Name_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
SELF.Q.sup:WEBSITE_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
SELF.Q.sup:EmailAddress_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
SELF.Q.sup:Phone_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
SELF.Q.sup:MirrorWebsite_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
PUT(SELF.Q)
END
Between this and the parent call, enter the following:
LOOP GreenBarIndex=1 TO RECORDS(SELF.Q)
GET(SELF.Q,GreenBarIndex)
SELF.Q.sup:Name_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
!SELF.Q.sup:WEBSITE_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
HyperActive Style overrides this style
!SELF.Q.sup:EmailAddress_Style = CHOOSE(GreenBarIndex % 2,1,2) ! - HyperActive
Style overrides this style
SELF.Q.sup:Phone_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
!SELF.Q.sup:MirrorWebsite_Style = CHOOSE(GreenBarIndex % 2,1,2) ! -
HyperActive Style overrides this style
PUT(SELF.Q)
END
return
Similarly, If you go into your embeditor and find the BRWx.SetQueueRecord
method you will find something like the following template generated code after
the parent call:
!----------------------------------------------------------------------
SELF.Q.sup:Name_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
SELF.Q.sup:WEBSITE_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
SELF.Q.sup:EmailAddress_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
SELF.Q.sup:Phone_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
SELF.Q.sup:MirrorWebsite_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
!----------------------------------------------------------------------
Between this and the parent call, enter the following:
SELF.Q.sup:Name_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
!SELF.Q.sup:WEBSITE_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
!SELF.Q.sup:EmailAddress_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
SELF.Q.sup:Phone_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
!SELF.Q.sup:MirrorWebsite_Style = CHOOSE(CHOICE(?Browse:1) % 2,1,2) ! -
return
In your HyperActive template, you need to make sure that you have set the
Style number (that each control is set to use) >= 3 as the ABC greenbarring
uses styles 1 and 2 (and these are not presetable).
4.8. How do I disable HyperActive at runtime?
Answer: Anywhere in your procedure you can set the disable property to
immediately disable HyperActive functionality for that procedure:
ThisHyperActive.Disable = 1

What
the Users are saying about HyperActive
Nardus Swanevelder (in a Clarionshop review - 20 January 2003):
Adding HyperLinks to your app has never been this easy.
Greg Fasolt (in a Clarionshop review - 20 January 2003):
A real timesaver and the support couln't be better.
Mark Segnari (in a return email - June 12, 2002):
Long story short, it's one of the easiest templates to implement! I
had a help/about screen up and running with web access and e-mail in about 10
minutes. In another 15 minutes I had a small data entry screen finished
for a user to compose an e-mail message! Very easy, very quick, and makes
everyone perk up when you mention e-mail or internet! .... is much
more robust than I ever expected! Keep up the great work!
John Martin (in a return email - April 2, 2002):
Fantastic! Thank you, .... I have found your product to be very reliable and
easy to use. Thank you again.
Darron Pitman (in a return email - February 12, 2002):
Excellent thank you......Really looks the biz.....
James Cooke (a support email - December 26, 2001):
I enjoy this product, thanks and well done.
License
& Copyright
This template is copyright © 2004 by CapeSoft Software (Pty) Ltd. None
of the included files may be distributed. Your programs which use HyperActive
can be distributed without any HyperActive royalties.
This product is provided as-is. Use it entirely at your own risk. Use of this
product implies your acceptance of this, along with the recognition of copyright
stated above. In no way will CapeSoft Software (Pty) Ltd, their employees
or affiliates be liable in any way for any damages or business losses you may
incur as a direct or indirect result of using this product.

Source
Code Policy
We have chosen to ship HyperActive as source code, rather than as a compiled DLL.
This makes it much easier for you to modify, but it also makes it much easier
for you to pirate. We ask you to please consider the effort involved in
writing this product, before you choose to hand it on to any other developers.
If you received this program illegally (i.e. if you didn't pay for it, or you
didn't buy it from CapeSoft, ClarionShop, or one of their respective dealers) then we ask you
to contact us so that we can remedy this situation. Without the revenue generated
from products such as this it is impossible for us to create new products.
This next bit is optional - and is included for the benefit of programmers wishing
to inspect, or alter, the HyperActive object.
HyperActive was written with the aid of Object Writer - a freeware template available
from http://www.capesoft.com/accessories/owsp.htm
. You will require this template if you wish to open the included HyperActive.App
file. The HyperActive.App file has been written in Clarion 5. If you work
with the HyperActive.App then make sure the Object Writer Global extension is
set to point to your Clarion 5 installation.
Please Note : Generating the HyperActive.App
will overwrite your existing hyper.Clw and hyper.Inc files (in your \Clarion5\3rdParty\LibSrc
directory).
We welcome any suggestions from users regarding new features that might be added
to HyperActive.
Support
Your questions, comments and suggestions are welcome. Check our web page (www.capesoft.com)
for new versions. You can also contact us in one of the following ways.
|
|
| |
Email |
|
|
| Telephone |
+27 21 715 4000
|
| Fax |
+27 21 715 2535
|
| Post |
PO Box 511, Plumstead, 7801, South Africa
|
| |
|
|
HyperActive may be purchased at $49 from :
|
CapeSoft Sales
|
| |
Web |
|
|
| Email |
sales@capesoft.com
|
| Telephone |
+27 21 715 4000
|
| Fax |
+27 21 715 2535
|
| Post |
PO Box 511, Plumstead, 7801, South Africa
|
| |
|
|
Version
History
Ver 2.02: Released August 20, 2007
- Feature - new property. URLisNotAnEmail property allows you to force a URL
to point to an email if it does not contain the @ character.
- Feature - new property. Disable property allows HyperActive to be
disabled at runtime (locally for each instance of the class).
- Feature - Cursor is changed over the icon in the column of a list that
is HyperActive.
- Fix - link local extension template to the template chain (as well as
the Global extension template).
- Fix - make HyperActive embeds start at the first position (on the left).
Ver 2.01: Released November 10, 2006
- Workaround - for Hyperlinks in Column 1 of a list box (when right-clicking
on a browse an accepted event is posted to the browse with MouseUpField set
to 1)
- Fix - if a Skype field is blank, then don't perform the Skype
functionality.
Ver 2.00: Released June 7, 2006
- Fix - for SkypeAddress link URL (in list box URL types).
- Fix - for spurious %EmailOrWeb template error.
Ver 1.97: Released June 7, 2006
- Feature - supports SkypeAddress link URL.
- Fix - was selecting the incorrect details for web URLs in list boxes with
multiple webURL columns.
Ver 1.96: Released October 27, 2005
- Feature - allow prop:buffer suppression in the Global Extension template.
- Clarified docs FAQ
for Outlook error.
Ver 1.95: Released July 18, 2005
- Fix regression introduced in 1.94 - was opening Internet Explorer for all
URLs.
Ver 1.94: Released July 13, 2005
- Opens a new window in Internet Explorer when the URL is activated.
Ver 1.93: Released 24 January, 2005
- Class fix - if @ exists in a webURL, then don't try and open the mailer.
- Includes copyright include.
Ver 1.92: Released 10 December, 2004
- Template Fix - Make compatible with new FileExplorer release.
Ver 1.91: Released 27 October, 2004
- Template Change - New template look.
- Template Change - Setup global defaults correctly.
Ver 1.90: Released 7 September, 2004
- Template Change - Support for Multi-Proj (when a cursor is used) fixed.
- Template Change - Improved legacy browse field handling.
Ver 1.89: Released 17 August, 2004
- Template Change - Procedurename display for C6 as well as C55.
- Template Fix - clipped heading to allow for Proc and Exe name to fit into
heading text.
- Template Fix - removed unrequired ALIAS to a FileExplorer template
variable.
- Class workaround - in C6 - proplist:mouseupfield was not being read
correcly.
Ver 1.88: Released 31 May, 2004
- Template Change - Added the Ability to Move the call to the
HyperActive.TakeEvent after the ThisWindow.TakeEvent.
- Template Change - Allow equates to be used for the HyperActive cursor (not
only a file).
- Template Change - Don't allow RegCheck if this is a ClarioNet or
WebBuilder application.
Ver 1.87: Released 23 April, 2004
- Object & Template change - fix for ClarioNet support (bug introduced
in 1.80 - prop:buffer in Init method).
Ver 1.86: Released 13 April, 2004
- Object & Template change - allows a different cursor to be used (for
HyperActive controls).
Ver 1.85: Released 9 March, 2004
- Object & Template change - supports the cursor in legacy list boxes.
Ver 1.84: Released 15 January, 2004
- Object Change - removed "s from encoded emails (causing grief with
Outlook). Tested OK with OutlookExpress, Netscape and Outlook.
Ver 1.83: Released 15 December, 2003
- Object Change - Save InActive color of Entry controls for use if control
is inactive.
- Object Fix - Change UseStdAction to a long (was byte) - Event for use was
not being stored correctly.
- Object Change (New HandleError method) - Allows user control of error
messages (called instead of direct use of MESSAGE()).
- Object Change - Use OutputDebugString for debugging.
- Object Fix - Clear UseStdAction between control additions.
- Object Fix (refresh and TakeEvent methods) - Do active check on entry
controls.
- Object Fix (TakeEvent method) - select only for StdHyperlink mode for
entry controls.
- Object Fix (SetControlProperties method) - allow resetting of FONT
attributes to combo, text and entry controls (dependant on whether they are
active or not).
- Template Fix - add class file correctly to the project (Multi-DLL apps).
Ver 1.82: Released 18 September, 2003
- Object Change - made module data properties - ensures that HyperActive is
thread safe for Clarion6.
- Object & Template Change - allows a HyperActive entry control to
behave as an Outlook hyperlinked entry cont