KeyNote 2.0: Development assistance sought
Version: 1.1 / 01 May 2003
The latest version if this file is available at http://www.tranglos.com/free/knt2devassist.html
See also: KeyNote 2.0 development FAQ
At some point ones come upon a topic about which there is little
to none information on the net. Nothing in the FAQs, no relevant tips, and
repeated posts to relevant newsgroups are never answered. I began to
wonder about this, and I began buying books. There's nothing in the books!
Bucknall's "Algorithms and Data Structures", Marco Cantu's "Mastering
Delphi 5", even "Delphi 6 Developer's Guide" - lots of cash, zero return.
(I should post reviews to Amazon one of these days...) And occasional posts
to relevant newsgroups are still met with silence. At the same time, I keep
seeing Delphi programs that have solved the very issues I'm grappling with.
This is when I realize that solutions to the problems I'm trying to figure
out are available, neatly packaged as corporate-priced components. And it
seems that the altruism of even the most prolific and helpful posters to
borland.public.* newsgroups stops short of that point too. So...
Here's a list of 'interesting' concepts I've been trying to wrap my head
around with little success. I've looked in lots of places, so pointers to
well-known FAQs or other Delphi sites are probably not going to help; I've
most likely seen them already. JCL/JVCL, I've seen them too, Torry's, DSP
and all. All other suggestions or tips will be much appreciated. In most
cases I'm not looking to be handed an algorithm on a platter - often just a
push in the correct direction will suffice.
- riched20.dll / msftedit.dll: creating tables (are tables defined as
properties of a paragraph? Otherwise? Are there any special structures that
define tables, much as TCharFormat2 and TParaFormat2 define attributes for
characters and paragraphs? They must be documented somewhere, but where?
Not in the publicly available sections of msdn.)
- riched20.dll / msftedit.dll: creating hyperlinks the proper way, the
"browser" way. Are those hyperlinks defined using TCharFormat2? (Don't
think so, there are no unused properties left in that structure.) Already a
couple of Delphi applications have tables and these smart hyperlinks, but
no-one admits to knowing how they are implemented...
Logical search with expression evaluation. I.e., searching for "foo NEAR
fooz OR bar AND NOT baz". Done! With the help of Julian Bucknall's
article published in issue 78 of Delphi Magazine (available on CD-ROM) and some additional
tinkering of my own, I now have a working boolean avaluation engine (AND/OR/NOT/XOR) for use
in KeyNote and other apps. Full source code is available, as part of my generic library (open-source).
- Spellchecking. Specifically, calculating "similarity" between words. I
have several ideas here, but they don't exhaust the possibilities. Does
everyone use Soundex? Isn't Soundex good only for English? (I thought I was
going to get at least the last two questions answered, but nope. I intend
to look at ispell, but since that's C, I'll probably won't make much
progress there, and the ispell docs even admit that ispell isn't very good
at this task. Hm.)
- Browser helper objects. I know about http://www.euromind.com/iedelphi/ -
it helps a little, but stops short. Demos there are uncommented, they crash
and twirl in endless loops. I've seen many posts in newsgroups, asking for
a simple demo - never an answer. Where is this stuff documented?
- Reading plain-text Unicode files (readln doesn't) without dependence on
third-party components (a *component* to read a text file into strings?).
Blockread works, but what you get then isn't exactly lines of text.
- Conversions. RTF-to-HTML, HTML-to-RTF, conversion to and from Word and Excel files,
conversion to and from OpenOffice/StarOffice documents, conversion to and from PDF...
- String grid control with in-place data editors (a drop-down list,
a checkbox, a date-time picker, currency edit, etc.) that also supports multi-sell selection.
I've seen all open-source grids and none does what I need. I've seen what's available in JVCL,
I've seen all the free-with-source grids on torry and DSP.
If you're a developer and feel that you could provide some assistance with the issues listed above, please email me
. Thank you!