Developer Tools


J-Spell

Most popular software (including almost everything written by Microsoft) supports the ability for the user to press F7 in order to check their spelling. J-Spell adds that exact functionality to your own Clarion applications!

How do I implement it?

All you need to do is install J-Spell, add the “J-Spell Global Extension Template” to your Clarion APP, and then recompile. When your users run your EXE, they will then be able to press the F7 key at any time to check their spelling!

How does it work?

J-Spell will generate code into your APP so that when the F7 key is pressed, J-Spell will establish which of your fields currently has focus. J-Spell will then establish what type of field that is (an Entry control, a Text control, and RTF control, etc), and will open up its own little “Spell Check” window (shown on the right of this page) listing any incorrectly spelt words, and offering suggestions. This window looks like the Microsoft spell check window, so most users will feel comfortable using it – it works exactly the same way that spell checking works in most other software, including Microsoft Office, Outlook Express, and so on.

The great thing about J-Spell is that it DOES NOT use Microsoft Word as the underlying spelling engine! Instead, it uses an open-source spelling engine called aSpell, which is also used by the likes of Opera and UltraEdit. And the “Spell Checking” window that appears when your users press the F7 key is actually a Clarion window, which we wrote, so we (and you) can control how it behaves, looks, and feels.

The fact that we are using aSpell as the underlying engine also means that your users do NOT have to have Microsoft Word installed in order for J-Spell to work. In fact, you can ship everything that your users will need as part of your own installation!

Buy Now

User Testimonials

“I finally figured out how you had made J-Spell and how much work it would take me to reproduce it using a-spell, and decided that it was far better for me to buy the template. It works like a dream and I now have spell checking as part of my application.” – Philip Cumpston, Australia

“Thanks, just snapped it into an existing APP and had it all up and running in under 5 minutes. Works GREAT! Keep up the good work.” – Nick LeForte, USA

“Great work on J-Spell. Much needed.” – Charles Edmonds, USA

“Judging from the response – you have a winner here!” – John Verbeeten, Tracker Software, UK

“Add global extension, recompile, update install, BOOM, instant great enhancement. Doesn’t get an easier than this!” – Greg Berthume, USA

“Excellent product this J-Spell, 10/10.” – Lincoln Forlong, USA

“J-spell works beautifully in Report Builder now. It is the most cost-effective spell checking solution available.” – Gregg Matteson, USA

“Great product Gary, thank you so much, had it up and running in 5 minutes!” – Frank Acosta, USA

“Recompiled and it worked first time.. Neat! Very nice job.” – Mike Gorman, USA

“Works like a charm. Very solid template.” – Brian Holmes, Australia

“I finally implemented J-Spell in an APP. Brilliant! If I’d realised how simple it was to implement I would have done it ages ago.” – Rohan Dunstan, Australia

“J-Spell runs beautifully. My customers have already said how much they prefer it over the old (Word based) spell checker.” – Kingsley Klosson, USA

“I simply dropped in the template using all the defaults. Nice job!” – John Gossman, PTS Solutions, USA

“J-Spell has been installed and utilized into one application within 5 minutes of purchasing – great job!” – Tim Morrison, kSoft Corporation, USA

“Great template!” – Vince Russo, USA

“J-Spell is a piece of cake to integrate, and it works beautifully. Thank you for an excellent product.” – Ian Hickton, USA

“I think that J-Spell is an awesome product. I is exactly what I needed.” – Donald Ridley, USA

Useful Links

Frequently Asked Questions

J-Spell

Users often ask us whether J-Spell can be told to ignore special words, such as mail merge tokens, or user-defined fields etc.

One solution to this is to use brackets around such words, and then tell J-Spell (in the global extension template settings) to ignore all words in brackets.  If you did that, then the word "EMAIL_ADDRESS" would be ignored in the following example...

Please send all correspondence to [EMAIL_ADDRESS].

One of our clients reported this to us, and we decided to FAQ it in case it pops up again.

JSpell is not able to deal with unicode characters in the name of the executable.  For example, if the application has an é as in communiqué.exe, this causes a problem.  The reason for this is that J-Spell creates a temporary file, based on the name of the executable, and non-standard characters such as é cause API issues when creating new files.

J-Spell makes use of the aspell spelling libraries and dictionaries.  These files need to be shipped with your software, and you need to tell J-Spell where to find them in order for the J-Spell template to work.  This is done on the "Folders" tab of the J-Spell Global Extension Template, as shown below.

By default, J-Spell is set to look for the aspell binaries (aspell.exe, and aspell-15.dll) in the same folder that your own EXE is running from.  And it is set to look for the spelling data and spelling dictionaries in a subfolder, relative to your own EXE, called "Aspell".

In other words, if your EXE is running from "c:\myapp", then aspell.exe and aspell-15.dll need to also be located in "c:\myapp", and your spelling data and dictionaries need to be located in "c:\myapp\aspell\".

But this can be changed.  You can install the aspell binaries and dictionaries anywhere you want, as long as you tell J-Spell where to find them.

In the following example (below) we have specified that the aspell binaries, and the spelling data and spelling dictionaries are all located in the same folder, namely "c:\temp\aspell".

Taking this one step further, you could also use a variable to set the location at runtime, as shown here...

In this example we're using a global variable called "GLO:SpellingFilesDir" (you need to create this variable yourself).  This variable can then be set in your "Program Setup" global embed point.

Q. Why do we need to use ASpell.EXE?

A. ASpell is provided as an open-source DLL. We could call the DLL directly (rather than using ASpell.EXE), but there is no documentation (that we know of) showing how to do this. We could spend days decoding the C++ EXE and figuring out how to use the ASpell DLL without going through the EXE, but the EXE is only 770KB, is proven to work very well, and your end users won't know we're using it (as it runs completely in the background), so it's far easier just to use it than to call the DLL. No one has complained yet, but we thought we'd address this here anyway. The ASpell team have "creating a C++ interface" on their "ToDo" list, so once they have done that we will stop using the EXE and will use the DLL interface instead.

Q. What is the "Personal Dictionary"?

A. When you use J-Spell it will create a file in the same directory as your EXE called "myjspell" (or "ComputerName_myjspell" if you are using J-Spell over a network). This file is your "Personal Dictionary" (or "local dictionary").

When J-Spell detects a spelling error and asks you how you want to deal with it, and when you choose "Add", it will add that word into this local file, so that in future that word is not detected as a spelling error. You can edit this file yourself using NotePad, and can then install it with your software so that certain words are in the local dictionary right from the start. The following example shows a "myjspell" file that has been set up so that the words "dogg" and "frrog" wonbe detected as spelling errors...

personal_ws-1.1 en 2
dogg
frrog

Note that the first line must always be "personal_ws-1.1" followed by a space, then the first two characters of the language (in this case "en"), then another space, then the number of words contained in the list below (in this case "2").

Also note that you cannot store punctuation in the personal dictionary. Characters such as ' and . are not allowed.

Q. If my users run my software by using shortcuts that point to a single EXE on a central computer will J-Spell still work?

A. Yes. On the J-Spell global extension template, go to the "Folders" tab and use the following settings...

"Temporary Files" - "Windows\Temp"

"Personal Dictionary" - "EXE"

"Bin Directory" - "EXE"

"Data Directory" - "EXE\Aspell"

"Dict Directory" - "EXE\Aspell"

"Ensure Personal Dictionary name is unique" - If you want each user to have their own personal dictionary (stored with the EXE on the "server") then leave this option ticked. If you want them to share a single personal dictionary (also stored with the EXE on the "server") then untick this option.

Then just make sure that the necessary ASpell files are all located in the same directory as your EXE (on the server). See the section titled "What you need to ship" for more information.

Q. Can I spell check other languages?

A. Yes! You can download dictionaries for a number of languages from http://aspell.net/win32/. Once you have installed the language of your choice from that website, simply change the "Language" option in J-SpellGlobal Extension template! If you want to use a language that is not in the list on our Global Extension template, please contact us and we will add it (if possible).

Q. Can I change the spell-check language at runtime?

A. Yes. If you look at our generated code you will see that as your EXE starts up we set a global variable called "GloJSpell:Lng" to a value, such as "en_US", "en_GB", "fr", "el", and so forth. This global variable is then used throughout your APP to tell J-Spell what language to spell check. If you want to change the language that is used, you can either do it before compiling from the Global Extension Template, or you can change this global variable. You can change the global variable as your APP starts up, or from a "Settings" type screen, or anywhere you like for that matter. Just make sure that you set it to a valid value, such as those listed above or used in our code.

Q. Can I use J-Spell with Fomin Report Builder?

A. Yes! Just make sure that you are using J-Spell version 1.26 or later, and FRB version 3.05 or later. Once you have added J-Spell and FRB to an APP, there will be an option in J-Spell's global extension template to enable FRB support. Just tick that and recompile.

Q. Can I use J-Spell to spellcheck the CapeSoft FileExplorer HtmlEditor control?

A. Yes! Just add a button to your window for the user to click in order to check the control, then behind that button embed the following code…

ThisViewer1.GetInfo()
ThisViewer1.Load (MyJSpell.CheckHtml(ThisViewer1.OuterHTML),, 1)

Q. Can I change the messages and screens that J-Spell shows my users?

A. You can change various messages (for example, the "The spelling check is complete" message), as well as the labels on the "Spelling" window by using the "UI" tab in the Global Extension template.

Q. Which version of ASpell does J-Spell use?

A. We are using Aspell version 0.50.3.3 (the most recent version at the time this document was written), available from http://aspell.net/win32/.

Q. Can I add words into the spelling dictionary?

A. Yes! See the FAQ titled "What is the Personal Dictionary" for more information.

This information is published on the Developer Tools page.


Clarion

From Windows Vista, you may experience problems running certain Clarion accessory installers, whereby they will not be able to detect your installed versions of Clarion.  Please see the following link for more information, as well as a workaround:

http://www.lindersoft.com/forums/showthread.php?t=18582

If you are experiencing problems compiling our example applications using Clarion 5.5.h, please take a look at the following article:

http://www.capesoft.com/accessories/c55a.htm

DebugView is a free application that you can download from Microsoft, which enables you to view debug output from our products. This can be very helpful in tracking down problems.

By default, our products do not generate debug messages, so you will not see anything in DebugView. To enable debug messages, simpy tick the "Send messages to DebugView" option found on each of products' Global Extension Templates, as shown below.

Once you have turned on the "Send messages to DebugView" option, recompile and run your APP. You should then see messages appearing in DebugView.

Our 3rdParty documentation is now available from within the Clarion 7 IDE.

After installing any of our Clarion 3rdParty products, you can now access our help system as follows...

From within the Clarion 7 IDE, simply click on the "Help" menu, then click on "Accessory", then "StrategyOnline".  Then click on "Online Product Documentation".