Other Projects


A. Delphi Examples
B. Utilities and Other Programs
Also see: Printer Projects Page

A. Delphi Examples

Program Description Keywords
ListSort. Use THeaderControl to define columns at design time. Change size of TStringGrid columns to match THeaderControl as part of FormCreate. Use OnSectionClick to sort column by Last Name, First Name, or ID number by using List.Sort routines.
Delphi 3 Source and EXE
Memo Save/Restore Display/Print. Assigning TMemo.Text to a TStringList to use SaveToFile/LoadFromFile works but trashes the ability to re-wrap text -- this save/restore operation freezes original wrapping of text in TMemo. MemoSaveDisplay first shows how to save and restore the TMemo.Text to a file using a TMemoryStream so the text is not wrapped only to fit the original TMemo. Select the Display or Print buttons to fit the contents of a TMemo manually on a canvas, either on the screen or a printer. This demo was developed to complement Hardcopy above in printing text from a TMemo box, but could also be used as a starting point for a print preview capability.

The text is parsed using a Tokens class, which is based on a finite state machine that recognizes single or multi-word tokens.

Delphi 3 Source and EXE. Order to press buttons: Read, Display, Print.

TMemo, TMemoryStream, TBitmap, Tokens, finite state machine
ASCII-to-Paradox command-line utility
Start with ReadMe.1ST and AscToPDX.DOC.

For a similar utility, see "Building a data import utility," in the July 1998 Delphi Developer's Journal, pp. 3-12.  Look for   98JUL/DDJ9871.ZIP. 

Also see:
"Delphi Import Export" in the May 1998 Delphi Informant.

"ASCII Made Easy:  Manipulating ASCII Files with the Table Component, " Delphi Informant article by Cary Jensen, June 1999, pp. 26-32
File di9906cj.zip

TVarRec, Slice, Tokens, REXX unit
Example command-line utility to dump Paradox table to ASCII file. APPTYPE CONSOLE, TTable
Pinger 1.1 utility. Freeware for non-commercial use. Fee for commercial use.
Specify a StringGrid of IP addresses. Utility cycles through list pinging with frequency specified in INI file. Can modify INI file on network to disable utility. Writes page files for use with Pager Utility (below). Writes results to log file for review.   Delphi 3 Source and EXE.

Uses icmp unit from www.mg-soft.si.
TPageControl, TStringGrid, TIniFiles,
Pager utility. The EXEs described below require the XPAGER32.DLL for operation, which is included in the ZIP file.  Delphi 3 Source and EXE. See ReadMe.Txt file.

Since I developed this program, a newer version of XPAGER is now available and is called Power Page. Contact Ron Tanner at www.inventiveweb.com/prod01.htm for information on how to obtain the XPDELPHI.PAS unit to recompile the Delphi projects. All my source code is in the ZIP. (Only XPAGER32.DLL can be distributed due to the license agreement.)

XPagerText.EXE. Freeware.
Quick overview of XPAGER32's capabilities.

PageService.EXE. Freeware for non-commercial use. Fee for for commercial use.
Send pages manually or via automation.

Define pager IDs and groups of pagers. Send page to list of pagers or groups.

Supports multiple paging companies. Each pager Nickname is associated with a paging company.

"Autopage" searches specified directories for specified files that become pages. Designed to work with Pinger (above) or VisualChron (below) utilities. For example, periodically ping IP addresses and page if network connection is down. Send page from any computer or device that can be configured to write simple ASCII file.

TPageControl, TStringGrid, TIniFiles, TTimer, user-defined Windows messages, modems, phone dialer, ExclusiveIO unit to read text files in exclusive mode (also reads DOS or UNIX line ends), QueueManager unit, StringGridLibrary, Tokens Library
Visual Chron utility. VisualChron is a Delphi utility that works somewhat like the UNIX "cron" command to run commands at specified frequencies. Design to work with Pager Utility (above).

Delphi 3 Source and EXE. See ReadMe.1st file.

TPageControl, TStringGrid, TIniFiles, TTimer, REXX Library, Tokens Library, StringGridLibrary
till.gif (646 bytes)
"Till" Countdown clock.   The default behavior is to count down till the next January 1, regardless of the year, until you select your target time. TTimer, Now, TDateTime, TDateTimePicker, DateTime_SetFormat,  Application.OnRestore, Application.OnMinimize, Application.Title, Format, ClientWidth, ClientHeight, Trunc, Frac, DecodeTime, EncodeDate, TIniFile, WritePrivateProfileString, ShellExecute
Arial Unicode MS.  Display any of the 65,536 Unicode Characters.  (Requires Windows NT/2000 and Windows 2000) Unicode, Arial Unicode MS font, Unicode Block, Unicode NamesList.TXT, WideChar, WideString, SetLength, Delete, TextOutW, ExtTextOutW, GetTextExtentPoint32W, StringGridDrawCell, StringGridClick, TBitmap, TImage, palette, TRichEdit, TCombobox, Invalidate, GetVersionEx, TOSVersionInfo, Fonts.IndexOf, ShellExecute, OpenClipboard, EmptyClipboard, SetClipboardData, CloseClipboard, CF_UNICODETEXT, StretchDIBits, Printer.Canvas,
Hershey Font.  This Delphi/Kylix project demonstrates how to manipulate the data and display the characters in the original Hershey font files. Hershey Font, rotation, scaling,  VCL, CLX, TStringList, TListBox, TSpinEdit, Application Icon, Delphi 3/4/5, Kylix, Linux

B. Utilities and Other Programs

Program Description Keywords
System Map. Includes BIOS, DOS, Memory and Disk Information. The Memory Map  was part of SysMap and was published as a utility, MemMap, in PC Magazine in 1990.
Turbo Pascal 7 Source and EXE.
DOS Interrupts, BIOS Interrupts
Boot Sector Check. Utility for scanning boot sector of a disk, and optionally, verifying CRC of boot sector. Intended to detect boot sector viruses.  Turbo Pascal 7 and assembly source, and EXE. DOS Interrupts, BIOS Interrupts, Absolute disk sector read
and Xlate
Character Count and Translate utilities. CharCnt forms a frequency distribution of characters in file, and optionally creates a translate table in a file for use with the Xlate program. Suspect some strange ASCII character in a text file? Verify this with CharCnt.

Xlate copies a file while translating characters from a table. ASCII-to-EBCDIC and EBCDIC-to-ASCII conversion tables are included for Xlate.  Turbo Pascal 7 Source and EXE.


Character translation,
CharCount Windows program to see frequency count of all bytes in file.   Updated (2013-05-08):
Download CharCount.ZIP.
Includes Delphi XE3 source code.
Added drag and drop of filename from Windows Explorer.
Generate Text. Need a large file to measure transfer times? GenText.C (Borland 5.02 C++) or GenData.PAS (TP 7) creates files as large as you want. Each program outputs a specified number of 64-byte lines with a line number in the center and shifting text.

GenText was modified to allow up 99,999,999 records, which means it can be used to create a file of about 5.9 GB (C is a pain since the "minimum width" field automatically expanded and then precise file sizes were not maintained.). GenData allows any value as a parameter but only creates 999,999 unique records before repeating.
I/O timing tests
Music. The MusicNot.PAS unit lists the frequency of music notes (from the Handbook of Chemistry and Physics). The Music.PAS program shows the each word as a tone is played. Includes a few songs appropriate for kids, including (Frere Jacques) Are You Sleeping, Twinkle, Twinkle, Little Star, American the Beautiful, The "Alphabet" Song, Santa Claus Is Comin' to Town. This old DOS program still works in Windows 95.

See easier solution in post by Timo Salmi.

Music Notes


8 May 2013

1 Nov 1998