Which spellings checker to use? - delphi

A customer would like it if a spellings checker is added to an existing Delphi application. The texts that need to be checked are in multiple memo fields and the language is Dutch, which tends to limit my options.
So, what are my options for adding a dutch spellings checker to a Delphi/WIN32 application?
(Preferably something not webbased because the client has no direct Internet connection.)It doesn't have to be free! The customer will pay if it's possible. :-)Addictive Software offers an option, but I prefer to have more alternatives.

I use Addict, lots of languages (including Dutch) and good support:
AddictiveSoftware.com

Addictive software, as mentioned above, is one of the main ones.
But the TRichView component includes parsers for several spell-checkers that work out with Delphi. Check out their list and links that include:
Addict 3 and 4 by Addictive Software (shareware VCL component)
HunSpell by László Németh (DLL, open source)
ExpressSpellChecker by Developer Express Inc. (commercial VCL component)
EDSSpell 7 by OneDomain (shareware VCL component)
ASpell by Kevin Atkinson (DLL, license: LGPL)
VSSpell 8.0 by ComponentOne LLC (shareware ActiveX, discontinued)
VSSpell 3.0 by Visual Components, Inc (shipped with some versions of Delphi, ActiveX)
LS Speller by Luzius Schneider (based on former work of Alexander Obukhov) (freeware, uses ISpell and MS Office spell checkers (via CSAPI)).
Polar SpellChecker Component by Polar (shareware ActiveX)

Jedi JVCL library has a JvSpellChecker component with a demo (in jvcl\examples\JvSpellChecker fodler)
Alternate option using MS Word:
Spell Checking from Delphi code using MS Word - Office Automation in Delphi
http://delphi.about.com/od/kbcontrolole/ss/word_automation.htm

Hunspell is a great spell-checker, used in OpenOffice, with up-to-date dictionnaries.
See the corresponding download at CodeCentral.
I've implemented a self-expanding version (i.e. the library and the dictionary files are extracted from the main Delphi exe resources on request), available as part of our SynProject FOSS application.

DevExpress Spell check is the best I have found so far, but it is not free.
http://www.devexpress.com/Products/VCL/ExSpellChecker/

Related

Delphi XE2 starter - what are my options for database access

I bought Delphi XE2 Starter edition because I can't really afford the other versions and didn't really read the full spec sheet.
Now I find that my old Delphi 7 programs which use TAdoConnection, won't compile as ADO DB is not included in the Starter Edition (although I seem to recall downloading it seperately for Delphi 7).
I would strongly prefer to Download ADOB and install it - can I somehow?
If not, what are my free and low prices options for database access? Preferably ODBC, although I might be able to live with MySql only.
Update: I intend to purchaser AnyDac/UniDac/MyDac (the choice of which will be another question).
However, I couldn't help but notice that my own generic collection of functions is all in a single unit and if I link that unit's DCU with the XE2 starter edition, voila! I have d/b access in the Delphi XE2 starter edition.
There are some commercial data access packages you can get or perhaps this OpenSource one may work for you: http://www.productivity.org/projects/tmysql/
Some commercial options for Delphi and MySQL (and there is support for other databases as well):
http://www.devart.com/mydac/
http://www.microolap.com/products/connectivity/mysqldac/
http://www.da-soft.com/anydac/
AFAIK you can't download additional modules for Starter Edition (even for pay) from Embarcadero, you have to use some thirdparty solution which doesn't depend on TDataSet (as AFAIK it isn't included in Starter Edition). Some options are
KADAO - if you want to stick with ADO;
ZeosLib - open source, supports MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle and SQLite;
UIB for Interbase and Firebird;
If you have the starter edition, you can use ZEOS access components.
You can download the XE2 package from SVN.
That's a bit fiddly, so in case you are unfamiliar with SVN here's a step by step.
Download a SVN client: http://tortoisesvn.net/downloads.html
Create a new folder to put the ZEOS components in; I use c:\borland\ZEOS
Right-click, and choose Tortoise SVN from the menu, then checkout or add.
copy paste the following url: https://zeoslib.svn.sourceforge.net/svnroot/zeoslib/branches/testing
There's a minor bug in the sourcecode that prevents it from compiling, see this answer how to fix that: https://stackoverflow.com/a/8389516/650492
As per usual you'll have add the directories the source code resides in to the search path, see: How to correctly set "Directories/Conditionals" and "Library" path

Delphi RTTI Over Executable Project

in C# you can easily open an assembly (just another word from an EXE) and then get reflection information from that assembly. I've been looking for something similar for Delphi where I can write a Delphi program that can point to a Delphi EXE then get me reflection information. How can I archive this? Thanks
There are a handful of programs that can extract RTTI from Delphi programs and DLLs. It's not as rich as what's available for .NET, but it can be done to a limited degree. There's a lot more RTTI available in Delphi 2010 and later versions, but as far as I know there's no program out yet that can extract info from them.
I was at the conference where this system was formally announced, and a bunch of people asked how this would affect security. Barry Kelly, who created the new RTTI, said that there would not be enough metadata available to create a "Delphi Reflector".
Well, sad news is, you probably can't. You can easily view .NET assemblies because they a) are compiled to what is called intermediate language (thus you can even get the code back using the likes of Reflector etc.), and b) contain metadata. Delphi, on the other hand, compiles to native code that and produces regular PE files that do not include rich metadata like a .NET assembly.
Delphi just doesn't work that way.
There are tools that can assist in reversing (Delphi written) executables but it will never be easy and it requires good x86 assembly knowledge.
Some examples of such tools are:
IDA Pro and/or Hex Rays
DeDe
Interactive Delphi Reconstructor
PE Explorer
The resource sections of a Delphi Executable also reveals usefull info like the form and it's components.
See also Is there a program to decompile Delphi?
If you have Delphi2010+ you can load a bpl and then use the rich rtti over it lik. e you do with c# and a .net assembly. If you need to do this in a .exe AFAIK you can't.
TestComplete seems to identify most objects in a running Delphi executable. You can extract this information with a script. A demo can be downloaded from http://www.automatedqa.com/downloads/testcomplete
This is maybe not the type of application you want as it is big and made for GUI-testing, but yes it can identify the objects.
As mentioned Remko, IDR (Interactive Delphi Reconstructor) can extract all RTTI information (if program contains it!) for Delphi version from 2 to 2009. Version 2010 will be available later. Moreover IDR can use all information that it finds in program to create a lot of comments to disassemled program code (this is a first step of analyses). You can also look forms and easy go to event hadlers associated with controls.

How does one create Microsoft Management console(MMC) snap-in in Delphi 2009?

Are there an wizard or templates in delphi 2009 to write a MMC console ?
EDIT:
Colin Wilson components look great thanks.
There is a MMC Snap-In Framework for Delphi 7 by Colin Wilson. Comes with packages to install and full source code. Might be worth a look.
Edit: As Marco points out, there is a Delphi 2009 section of Colin's site. This link is a download to the 2009 version of his components, which contains an updated MMC Snap-In Framework.
There's also another implementation. It has been published in the "Toolbox Magazin" (a german developer magazine) issue 6'08, page 76. The title is "Eingeschnappte Manager", it also comes with full source on the enclosed CD/DVD.
Slight caveat: As one might notice, the article is of course written in german ...
Have fun,
JensG

How do I write a Delphi Galileo IDE Expert?

HI,
I want to write a small Delphi IDE Expert for D2007-D2009 (aka. Galileo IDE) in order to show a window with a TMemo instance on it, with all the component names and classes from the form designer in the above memo. The selected component will be marked with a '*'. The expert should appear on a menu/toolbar and have a shortcut assigned.
How do I do?
Ps: Actually the real code is more complicated than that, but I want to have a general framework to get started.
TIA
I did my first OTA with help of these links:
Erik's Open Tools API FAQ and Resources (The author of GExpert)
Delphi Open Tools API from Jim Kueneman - Mustangpeak
Delphi Open Tools API from RayRay Lischner
They are not updated to the latest versions, but they will you good start point and most of the code will work with the last version, I tried them with D2007.
There are links to articles describing how to write an OTA plug-in here:
http://delphi.about.com/od/objectpascalide/a/wizardsexperts.htm

where can I find a good delphi library?

I'm using delphi6, and it lacks the following abilities:
a library object,
a list object(looks like TList,TStringList is good enough?)
a algorithm library(like sort,)
template library like STL
dynamic language feature or GC.
and so on.
how can I find this things?
Try Jedi Code Library. There are good replacements for container classes and sorting algorithms. I don't think there is GC or STL-like library for Delphi 6.
Delphi 6 is behind the times, check Delphi 2009 or at least Turbo Delphi
There is DeCAL, which claims to be similar to the STL. I've never really tested it, however.
There are many third party delphi libraries, components and source code examples on the net.
Just a couple off the top of my head
JEDI http://www.delphi-jedi.org/
and
a Delphi super page http://delphi.icm.edu.pl/
As an alternative to DeCAL (Which is a very good alternative to TList without generics), I will propose EZSDL by Julian M Bucknall.
List of main third party components compatible with Delphi 2007 for Win32 and RAD Studio 2007 by Andreano Lanusse at http://edn.embarcadero.com/article/37455
The first three are in the VCL, take a look in the help and the sources. Delphi 6 has no generics, so cannot be used with a template library. And no garbage collection.
If you want to program in Delphi, forget about them. If not, find another language.

Resources