Memo Field Replacement for Xbase++
|Version 1.2 Now Available
X-MEMO is a Multiple Line Edit control for memos which stores text in DBF files instead of DBT/FPT files. It eliminates the need for memo fields and avoids the problems inherent in them. X-Memo has Encryption (optional) and Automatic Record Recycling so it is secure, has no unused space, and does not need to be Packed. It is a subclass of XbpMle and can be placed on a data entry form or in a popup memo dialog, just like a standard Mle object.
X-Memo accepts either Pixel or Row/Column coordinates so it can be used by any Xbase++ programmer, including users of Top-Down Library and eXpress++. The package includes a special version for use in the Top-Down DE System. It uses the same file structure as "Word Wrapper" (the popular Clipper utility of similar function) and can use Word Wrapper files from Clipper applications being converted to Xbase++. Source code is included. The price is $59 US.
1) Stores text in DBF files -
avoids the shortcomings of DBT/FPT memo files:
a) DBT/FPT files store text in blocks
so there is unused space, and they do not shrink when
text is erased. Even if the program uses record recycling on the
primary data DBFs, the memo files continue to grow over time, creating
bloated files, and the entire database must be packed in order to remove
discarded text and reduce size. This is time consuming, creates down-time for the system,
requires large amounts of free hard drive space, and carries the usual
dangers associated with large scale data operations. In addition,
depending on how the data is deleted, sensitive memo information can
remain in the memo file and be visible to prying eyes.
b) Memo files can get corrupted. If a memo file is damaged or missing, the data DBF cannot be opened. X-Memo avoids these dangers by using standard DBF files for the memotext storage. The memo text is always available through any DBF utility or programming interface. The data DBF can be moved or opened for maintenance purposes, free from any dependence on the memotext file.
2) Encryption - Text in memo files can be easily read with file viewers. X-Memo has an optional encryption algorithm which keeps sensitive information safe from snoopers.
3) Insert and Overstrike modes - The standard Mle object has Insert Mode only.
4) Insert Key codeblock - X-Memo accepts an optional codeblock to be evaluated whenever the Insert Key is pressed. This allows you to add an INS/OVR display to your user interface.
5) HotKeys - Any number of HotKeys and their associated codeblocks may be assigned to the X-Memo object. When a HotKey codeblock is evaluated, the X-Memo object is sent into the codeblock as a parameter. This allows easy manipulation of the X-Memo object from the user interface.
6) Edit Timeout - Built in edit timer allows setting the timeout interval, and a codeblock for controlling the Timeout behavior.
7) Ctrl-U keystroke for Undo - This keystroke is common to Clipper programs and allows compatibility with legacy Clipper applications.
8) Built in Message System - The results of every operation, such as loading or saving memos, are written to the X-Memo instance variable :cRetMsg where they can be easily accessed. This includes any error messages from the error trapping logic. Many possibilities exist for this information, such as writing to a logging routine, pop up dialogs to inform the user, or status bar displays.
9) Language control - All of the messages passed to :cRetMsg are defined in the xmemo.ch file. They may be translated into other languages.
10) Word Wrapper compatibility
- X-Memo uses the identical memo DBF file structure as used by the popular
Clipper utility. Existing Word Wrapper files can be used directly by the
:LoadMemo(cKey) - Loads memo from the
memotext DBF into the Mle buffer.
12) Configuration - Many items are configurable with X-Memo parameters, including the following (all but datalink and filename have default values):
datalink - a codeblock which returns
the unique memo_key. Example:
...and all other attributes and methods
inherited from XbpMle.
PopXmemo() - A ready-to-use "black box" routine which pops up a dedicated
window with an Xmemo control and "Save"/"Cancel" buttons.
Parameters exist to configure all aspects of the Xmemo and the window, including
size, location, and whether it is a Modal or a Child.
Copyright © 2009 Clayton Jones