Peter Johnson

Author Homepage: http://www.delphidabbler.com/

Send e-mail to this Author

The latest version - FastReport VCL 2022.2 - includes:

  • Support for Delphi 7-XE8, C++Builder 2005-XE8, Embarcadero Rad Studio 11 and Lazarus
  • Extended interactive functionality
  • Connection to 20+ databases
  • Export in 45 Data Formats
  • 40 types of bar codes
  • Support for 48 Languages
  • Cloud service integration

Author Products

Total 24 products

8 Queens Problem Solver v.4.1.0

Code Samples > Samples > Applications

By Peter Johnson.

Freeware + source 06 Apr 2015

Description

This program calculates and displays all possible solutions of the "eight queens problem". This problem asks how many different ways eight queens can be placed on a chess board so that no queen can take any other.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 1 656kB

Platforms: D2010

BDiff and BPatch v.0.2.6a

Developer Tools > Developer Tools > Other

By Peter Johnson.

Freeware 13 Sep 2013

Description

The programs supplied in this archive are versions of Stefan Reuther's bdiff and bpatch compiled from Pascal translations of the original C source.

BDiff is used to output information about the differences between two files, with the option to output binary information. BPatch can apply the binary patches created by BDiff.

Notes about the programs, descriptions of the algorithms and notes on the Pascal translation are included in the download and are also available on the program's home page.

The download includes borth the original C code and the Pascal translation. Note: Any further distribution of the code must include both, along with any updates.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 85kB

Platforms: D4, D5, D6, D7

CodeSnip Database Viewer v.4.11.1

Developer Tools > Code > Code Banks

By Peter Johnson.

Freeware 06 Apr 2015

Description

CodeSnip is a Delphi source code repository that can be used to display routines, types and constants from the DelphiDabbler code snippets database along with user defined code snippets. User defined code can be added, edited, deleted, saved, backed up and restored.

When first run the program gives the option to download the CodeSnip database from the DelphiDabbler website and stores it locally.

Snippets are displayed either by category, alphabetically or by type. Details of any snippet can be displayed. The display includes a brief description, syntax highlighted source code, a list of required Delphi units, a list of other required snippets from the database and details of which version of Delphi the snippets compile with.

The repository can be searched either for snippets containing specified text, for snippets that compile under specified versions of Delphi and for cross-referenced routines

Snippets can be exported as Pascal include files, plain text files or syntax highlighted XHTML or RTF files. Pascal units containing selected snippets can also be generated.

CodeSnip can also test compile any snippet with any Win32 Delphi compiler from 2 to XE7 and the Free Pascal Compiler.

User defined code can be submitted for inclusion in the online database. Code can also be exported and imported.

From v4.1 CodeSnip has also been available in a portable edition that can be run from removable media and that makes no changes to the host operating system.

Source code is available from a Subversion repository at https://code.google.com/p/codesnip/source/browse/

CodeSnip is released under the Mozilla Public License v2.0 and other source code licenses: see https://codesnip.googlecode.com/svn/trunk/Docs/License.html for full details.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 2 096kB

Platforms: D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE5, DXE6, DXE7

Component Help Installer v.3.0.0

Developer Tools > Help > Components

By Peter Johnson.

Freeware 25 Mar 2012

Description

This is a mothballed project and is no longer being development. Anyone can take it over if they wish. Please see the project's home page for details.

Component Help Installer installs Delphi-compatible help files into Delphi's OpenHelp system in such a way that the help files are integrated with Delphi. Context sensitive help for components, classes and routines installed by CHI is accessible from the Delphi code editor, form editor and property inspector. CHI works with Delphi versions 3 to 7..

CHI2 comes in two flavours:

  1. A stand-alone Windows application (CHI.exe). This detects which versions of Delphi are installed on the system and allows any available version to be chosen from the main interface.
  2. A command line application (CHInst.exe) is provided mainly to enable installation of help files from batch files. The program can also be called from install programs. It provides all the functionality of the GUI based application through a command line interface. The CHI help file provides an example of using the command line application.

When used with Delphi 6 and 7 CHI will merge any .als a-keyword files found in the same directory as the help file into Delphi's master .als file. This feature works only with Delphi 6 and 7, since .als files are not supported in earlier versions of Delphi.

The WinHelp program required to display help for Delphi 3-7 is not included with Windows Vista and later OSs by default but must be downloaded and installed separately. See Microsoft Knowledge Base article KB917607 for details.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 497kB

Platforms: D3, D4, D5, D6, D7

Environment Variable Management code & component v.1.2

Components > System > System

By Peter Johnson.

Freeware + source 08 Apr 2004

Description

This unit provides a component and various routines for manipulating environment variables. Features include:
  • A component to enumerate all available environment variables and to get, set and delete variables.
  • A set of routines effectively duplicating facilities of component, but also able to create a string list containing information about all environment variables.
  • A routine to replace a environment variable name references within a string with the values of the variables.
  • A routine to create a customised environment block for passing to child processes.
A help file is supplied which integrates into the Delphi 3 to 7 IDE and provides help on the component and routines.

This component and routines are essentially wrappers around the following Windows API calls:

  • GetEnvironmentVariable: returns the value of a given environment variable.
  • SetEnvironmentVariable: sets an environment variable's value.
  • GetEnvironmentStrings: gets a list of all available environment variables.
  • ExpandEnvironmentStrings: replaces all '%' delimited environment variable names in a string with the variables' values.
To learn about the use and manipulation of environment variables check out the article linked to from the component's home page.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 18kB

Platforms: D3, D4, D5, D6, D7

Extended String Property Editor v.2.0.3

Components > Property Editors > Other

By Peter Johnson.

Freeware + source 06 Apr 2015

Description

This property editor has been designed to get round two limitations of the standard Delphi string property editor.

  • The standard property editor does not allow multi-line strings with embedded CR/LF characters to be entered via the object inspector. Such strings can only be assigned run-time.
  • Although 32 bit Delphi strings have a 2Gb size limit, the standard property editor only accepts strings up to 255 characters long. Once again, longer strings must be assigned at run-time.

The enhanced property editor works with every string or TCaption property. It adds an ellipsis button to the right hand side of the data entry area in the object inspector. Clicking this button displays a dialog box in which the property's value can be entered. Pressing return in the dialog box starts a new line. There is no practical limit to the length of strings that can be entered.

The edit dialog is resizable. Word wrapping can be switched on or off. Both the word-wrapping and dialog box size and position are persistent.

Load and Save buttons are provided in the dialog box to enable the property's value to be loaded from, or saved to a file

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 20kB

Platforms: D2005, D2006, D2007, D2009, D2010, D6, D7, DXE, DXE2, DXE3, DXE4, DXE5

Fractions Unit v.0.1 beta

Components > Miscellaneous > Other

By Peter Johnson.

Freeware + source 24 Jan 2013

Description

The Fractions Unit contains an advanced Delphi "record with methods" that encapsulates a fraction and the operations on it.

Numerous operators are overloaded to allow arithmetic and comparisons to be performed using the normal Pascal operators.

Fractions can also be assigned directly from integers and floating point numbers, making it easy to convert a floating point number to its fractional equivalent.

The unit is documented here.

The Fractions Unit is supplied with DUnit tests for all operators and methods.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 25kB

Platforms: D2009, D2010, DXE, DXE2, DXE64

HKEY Property Editor v.1.0.3

Components > Property Editors > Other

By Peter Johnson.

Freeware + source 17 Dec 2005

Description

This is a property editor for properties of type HKEY - the type is used for registry root keys.

When a HKEY property is selected in the Delphi Object Inspector the property editor displays a drop-down list of all the possible registry root keys, as defined in the Windows unit.

A property of type HKEY is published by my TPJRegWdwState component. A version of this property editor is included with releases of TPJRegWdwState.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 6kB

Platforms: D2, D2005, D2006, D3, D4, D5, D6, D7

HTML Resource Compiler v.1.2.1

Developer Tools > Developer Tools > Compilers

By Peter Johnson.

Freeware 06 Apr 2015

Description

HTMLRes is a simple command line application that creates 32 bit binary resource files that contain HTML files suitable for displaying using Internet Explorer's res:// protocol. For details on how to use the protocol see author's article 'How to create and use HTML resource files' on http://www.delphidabbler.com/articles.

The application simply takes a list of HTML and related support files and embeds the files a RT_HTML section of a resource file. The resource file is created from scratch, overwriting any existing resource file with the same name.

HTMLRes is particularly useful for embedding HTML files in the executable of the program that displays information using TWebBrowser. The abilitiy to embed the required HTML and support files in the executable means that it is not necessary to distribute the HTML files separately. HTMLRes names the resource with the name of the file - something that makes porting standard HTML files to embedded resources very easy - and something that BRCC32 won't do.

v1.0 adds new -r command line switch that enables manifest files to reference files relative to manifest rather than directory HTMLRes executed from. Also updated sign on message.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 430kB

Platforms: C2k10, C2k6, C2k7, C2k9, CB1, CB3, CB4, CB5, CB6, CBXE, CBXE2, CBXE3, D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE5

Macro Toolbar Display Wizard v.1.0

Components > Experts, IDE etc. > IDE

By Peter Johnson.

Freeware + source 03 Jul 2007

Description

Delphi 7 introduced a macro recording toolbar that can be used to record and play back macros. The toolbar was to be displayed in the bottom left of the editor's status bar. However, the toolbar was hidden in the release version, leaving an empty space in the first panel of the status bar as the following image shows.

This wizard causes the hidden toolbar to be displayed in each open edit window.

The Wizard also adds a new Display Macro Toolbar menu item to the end of Delphi's View menu that toggles the toolbar on and off.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 20kB

Platforms: D7

MD5 Message Digest Unit v.1.1

Components > Miscellaneous > Other

By Peter Johnson.

Freeware 24 Jan 2013

Description

This unit contains an implementation of the MD5 message digest algorithm. A Delphi class named TPJMD5 provides overloaded methods for calculating the MD5 of

  • Files.
  • Byte arrays.
  • Strings: Unicode, ANSI and short strings are all supported.
  • Streams.
  • Untyped data buffers (useful for getting the MD5 of ordinal values).

Data types can be mixed and matched. Class methods provide quick shortcuts to taking the MD5 of a single file or single data item without having to create and free a TPJMD5 instance.

There is also an "advanced" record, TPJMD5Digest, that encapsulutes a MD5 digest. Operator overloads for assigning digests to and from strings and bytes arrays are provided. The digest can also be read in long words chunks.

The code was developed from scratch based on the algorithm presented in RFC 1321. Portions of the code are translated from the reference C code supplied in the RFC. However the code is not a literal translation into Pascal from the reference C code.

The algorithm and reference code are copyright 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.

DUnit tests for the unit are supplied in the download. The tests include all those specified in RFC 1321 (http://www.faqs.org/rfcs/rfc1321.html).

The unit is fully documented at http://www.delphidabbler.com/url/md5-docs

Informations

  • Status: Fully functional
  • Source: None
  • Size: 107kB

Platforms: D2009, D2010, DXE, DXE2, DXE3, DXE64

PasH Pascal Highlighter v.1.1.0

Developer Tools > Code > Syntax Tools

By Peter Johnson.

Freeware 12 Sep 2013

Description

PasH is a simple command line program that syntax highlights Pascal source code. The highlighted code is output as XHTML.

The program reads Pascal source from its standard input, or from the clipboard, and writes the generated XHTML to its standard output, or stores it on the clipboard. By default PasH generates complete XHTML documents but it has the option to create XHTML code fragments containing just the highlighted code.

The ability to highlight code via the clipboard is the programs most unique feature and it makes PasH very easy to use. You simply copy the required source code to the clipboard and run PasH with the necessary parameters. The highlighted code can replace the original source on the clipboard ready for pasting into a document. This is particularly useful when combined with the option that creates XHTML fragments because it simplifies writing documents that contain several Pascal source examples.

The XHTML generated by PasH uses Cascading Style Sheets (CSS) to format the highlighted source code. Complete XHTML documents contain an embedded style sheet but XHTML fragments require the user to provide a suitable style sheet.

Note: While this is beta software, it is quite stable at present and there are no known outstanding bugs.

Informations

  • Status: Fully functional
  • Source: None
  • Size: 387kB

Platforms: D2005, D2006, D2007, D2009, D2010, D4, D5, D6, D7

Resource File Unit v.1.0

Components > System > Resources

By Peter Johnson.

Freeware + source 23 Sep 2004

Description

This unit contains classes that encapsulate Windows 32 bit binary resource files and the resources contained in them. The main functionality is provided by two classes:
  • TPJResourceFile - encapsulates the contents of a whole resource file and provides methods and properties for reading, finding, editing, adding and deleting resources. Resource files can be read and written from and tofiles or stream.
  • TPJResourceEntry - encapsulates a single resource within the file and provides access to its header properties and to its raw data along with methods to check the identity of the resource. The resource's raw data is made available as a TStream and so is easily read and written using familiar TStream methods. It should noted that the class has no knowledge of resource data formats and sees the data simply as a sequence of bytes.
In addition to the two main classes, some helper functions are also provided that assist in working with resource indentifiers.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 31kB

Platforms: D4, D5, D6, D7

SIBuilder for Delphi v.3.3.1

.NET Tools > Installation Tools > Install Tools

By Peter Johnson.

Freeware 03 Jul 2007

Description

SIBuilder (Small Installation program Builder) is a freeware software installation program creator that creates a stand alone executable software installer with little overhead taken up by the installer. This makes the program an ideal development tool for creating a single, self-extracting (sfx) installation programs for distribution over the Internet. The installer is a Windows command line (or console) application. Key features of SIBuilder are that it:

  • Has optional uninstaller that is registered with the Control Panel "Add/remove programs" applet.
  • Installs files and folders -- can selectively overwrite existing files depending on age or version information.
  • Updates registry with new keys and data
  • Can be customize installations for different Windows operating systems.
  • Can execute other programs -- which makes it simple to extend SIBuilder's functionality.
  • Registers COM servers, shared DLLs and applications with Windows.
  • Optionally displays a license agreement.
  • Can automatically uninstall other installations before proceeding with the installation.
  • Uses a wizard style interface to simplify creation of install projects.
  • Provides a choice of compression algorithms used to compress the install program and has ability to have new compression systems plugged into program.

SIBuilder no longer requires a copy of Borland Delphi to compile the install programs - it now uses its own built in packaging technology to create them. While the ability to use Delphi, where present, is still available as an option, such use is now deprecated. The facility may be removed from a future version.

An on-line tutorial describing how to use SIBuilder is available on the program's home page. The tutorial walks through the creation of an installation project based on some files provided with SIBuilder.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 14 170kB

Platforms: C2k10, C2k6, C2k7, C2k9, CB1, CB3, CB4, CB5, CB6, CB64, CBXE, CBXE2, CBXE3, CBXE4, D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE64

Stream Extension Classes v.2.0.1

Components > Tools > Streams

By Peter Johnson.

Freeware + source 08 Apr 2004

Description

This class library provides some classes that can be used to extend the functionality of Delphi's TStream classes.

At present the classes provided are:

  • A TStream derived class which can wrap another TStream - this is useful as a base class for filters to wrap round existing stream classes.
  • A set of stream wrappers that simplify writing data to a resource file - one class handles the resource file structure (including headers) while another handles the format of individual resources within the file.
  • A set of classes that wrap existing streams and provide an IStream interface to them - like Delphi's TStreamAdapter classes.

Several demo programs are included in the download along with a user guide in PDF format.

Informations

  • Status: Fully functional
  • Source: Included
  • Exe demo: included
  • Size: 95kB

Platforms: D4, D5, D6, D7

System Information Classes v.4.0

Components > System > System Info

By Peter Johnson.

Freeware 24 Jan 2013

Description

The System Information Classes unit provides the following static classes and global variables:

  • TPJComputerInfo: provides information about the user's computer.
  • TPJSystemFolders: gets full path of certain system folders.
  • TPJOSInfo: provides information about the Windows operating system including platform, product and edition, service packs, version numbers, product ID etc.
  • Global Win32XXX variables:extra variables to those provided by the SysUtils unit that provide extended OS version information on later NT platform OSs.

The classes are fully documented online.

All the classes are compatible with the Delphi 32 bit and 64 bit compilers.

Demo programs are included for both the VCL and FireMonkey 2 frameworks.

Informations

  • Status: Fully functional
  • Source: None
  • Size: 47kB

Platforms: D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE64, FM2

TPJAboutBox v.3.6.1

Components > Dialogs > Extended Dialogs

By Peter Johnson.

Freeware + source 06 Apr 2015

Description

This VCL component encapsulates an About Box in a non-visual component. It has various string properties to display five different pieces of information in the about box.

Alternatively, the about box can display information from the program's version information resource. This is accessed using a linked TPJVersionInfo component -- available from my website.

Note: The TPJVersionInfo component must be installed before the about box.

The About box also displays an icon. This is the icon defined for the application (see the Icon property of TApplication). If no icon has been specified for the application the default Delphi icon is used.

The display attributes and the dialog's location on the screen can also be customised.

The component is compatible with the Delphi 32 and 64 bit Windows compilers.

A help file is included that integrates into the IDE for Delphi 3 to Delphi 7. It does not integrate with the Delphi 1 and Delphi 2 IDEs but can be used independently.

The component is also documented here.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 109kB

Platforms: D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE64

TPJCBViewer v.1.4

Components > System > Clipboard

By Peter Johnson.

Freeware + source 25 Mar 2012

Description

TPJCBView is a non-visual Delphi component which registers a hidden window as a "clipboard viewer".

This means that Windows notifies the component whenever the clipboard contents change. On receipt of these notifications the component triggers an event. By handling the event your application can respond to changes on the clipboard. The component can be used as the heart of a program that displays "live" information about the clipboard. Alternatively it can simply enable and disable other components whose state depends on the available clipboard formats.

TPJCBView provides an Enabled property that is used to switch the event triggering on and off. It also has a TriggerOnCreation property that causes the event to be triggered when the control is created, regardless of whether the clipboard has changed at that time.

An OpenHelp compatible help file is provided that can be integrated into the Delphi 3 to 7 IDE. The help file can be used independently of the IDE on other versions of Delphi.

The component is also documented in a wiki.

A demo program is also available.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 24kB

Platforms: D1, D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2

TPJDropFiles and TPJFormDropFiles v.5.0.5

Components > System > Drag and Drop

By Peter Johnson.

Freeware + source 06 Apr 2015

Description

Five components are included in this pack. The three major ones enable applications to support Windows Explorer file drag and drop operations. The remaining two subsidiary components link to and filter the files dropped on one of the primary components. The components are:

  • TPJDropFiles: This windowed component catches files dropped anywhere over its window. It can act as a container for other components.
  • TPFormDropFiles: This non-visual component catches files dropped anywhere on its form, including the non-client areas.
  • TPJCtrlDropFiles: This non-visual component catches files dropped on an associated TWinControl or TFrame.
  • TPJExtFileFilter: When linked to a TPJDropFiles or a TPJFormDropFiles this component filters dropped files by extension. One or more extensions can be provided.
  • TPJWildCardFileFilter: Like TPJExtFileFilter except that it filters based on a DOS-style wild-card string.

In addition to the above an abstract base class is provided from which developers can derive other filter components.

Key features of TPJDropFiles, TPJCtrlDropFiles and TPJFormDropFiles are:

  • An OnDropFiles event is triggered when files are dropped.
  • The names of dropped files are made available through the Files array property. For convenience, the name of the first such file is also stored in the FileName property.
  • The list of dropped files can be configured to include only files, only folders or all files and folders.
  • Dropped folders can be recursed so that all the files and sub-folders in each of the dropped folders are listed.
  • Filters can be applied to the dropped files and folders. This is done either by linking to a filter component (see above) or by handling the OnFileFilter event and deciding which files and folders to pass through the filter in the event handler.
  • The mouse co-ordinates where the files were dropped can be retrieved, as can a reference to any control under the mouse cursor at the time.
  • The OnBeforeDrop event can be used to perform pre-processing before the files are actually dropped.
  • The IsFolder array property tells if the equivalent item from Files array is a file or a folder.
  • The owning window can be brought to the front when files are dropped.
  • Some design time assistance is provided by component and property editors.

A OpenHelp compatible help file is included that integrates with the OpenHelp system of Delphi 3 to 7. The help file can be used independently of the Delphi 2005 and 2006 IDEs with some loss of functionality.

The components are also documented in a wiki

Two demo programs are included in the download. The first exercises both drop files components and the related file filtering components. The second shows how to use TPJCtrlDropFiles with frames.

Informations

  • Status: Fully functional
  • Source: Included
  • Exe demo: included
  • Size: 81kB

Platforms: D2005, D2006, D2007, D2009, D2010, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE4, DXE5, DXE64

TPJMessageDialog v.2.2

Components > Dialogs > Message Boxes

By Peter Johnson.

Freeware + source 31 Mar 2006

Description

This unit provides three customisable message dialog box components. Each component enables any of the standard Windows icons to be displayed in the message box, or the icon can come from a user defined icon resource. Various combination of buttons and titles can be displayed. The dialogs can also provide a Help button that calls a specified help topic in a nominated help file when clicked. The components are discussed below.

  • TPJWinMsgDlg - This component wraps the Windows MessageBoxIndirect API call and displays a message box based on that provided by Windows. TPJWinMsgDlg will be suitable for most purposes and has a light footprint.
  • TPJVCLMsgDlg - This component uses the Delphi VCL CreateMessageDialog function to create a form based message box. (CreateMessageDialog is used by the standard Delphi MessageDlgXXX functions). The component provides more flexibility than either the Delphi functions or TPJWinMsgDlg. TPJVCLMsgDlg should be used when it is necessary to display buttons or combinations of buttons that are not supported by the Windows API message box or when a finer degree of control over the appearance and behaviour of the message box is required. TPJVCLMsgDlg supports all the features of TPJWinMsgDlg and extends them. From v2.2 the underlying dialog form can be cutomised using the new OnShow and OnHide events.
  • TPJMessageDialog - This is an updated version of the component supplied in release 1 of this unit. Various bugs have been fixed and the handling of user icons improved. This component is provided for backwards compatibility with release 1 and exposes the same properties as the old component. Some of these properties vary from those common to TPJWinMsgDlg and TPJVCLMsgDlg. It is recommended that TPJWinMsgDlg or TPJVCLMsgDlg are used in new projects.

An OpenHelp compatible help file is supplied that provides help on all the components. The help file integrates with the help system of Delphi 4 to 7. Although it does not integrate with the Delphi 2005 and later IDEs it can be used independently of the IDE, albeit with some loss of functionality. An a-link keyword (.als) file is also supplied to assist in integration with Delphi 6 and 7 help.

A demo program is provided that exercises the three components.

Informations

  • Status: Fully functional
  • Source: Included
  • Exe demo: included
  • Size: 58kB

Platforms: D2005, D2006, D4, D5, D6, D7

TPJShellFolderInfo, TPJBrowseDialog etc v.2.2.4

Components > System > Shell

By Peter Johnson.

Freeware + source 03 Jul 2007

Description

This unit provides various components, classes and routines for handling Windows shell folders. It contains:
  • A component that provides information about a specified special shell folder.
  • A class that enumerates all the special shell folders.
  • Routines to manipulate special shell folder information.
  • A component that encapsulates the Windows Browse for Folder dialog box.
  • A property editor that enumerates special shell folder identifiers.
A OpenHelp compatible help file is supplied. It provides help on all the components, classes, interfaces and routines. The help file integrates with the help system of Delphi 4 to 7. Although it does not integrate with the Delphi 2005 and later IDE at can be used independently of the IDE, albeit with some loss of functionality. Anuals file is also supplied to assist in integration with Delphi 6 and 7.

A demo program with associated explanatory notes is included in the download. The demo lists and provides information about all the special shell folders supported by the unit.

Informations

  • Status: Fully functional
  • Source: Included
  • Exe demo: included
  • Size: 52kB

Platforms: D2005, D2006, D4, D5, D6, D7

TPJVersionInfo v.3.3.1

Components > System > Version Info

By Peter Johnson.

Freeware + source 24 Jan 2013

Description

TPJVersionInfo is a 32 bit non-visual component for all Win32 and Win64 versions of Delphi that encapsulates the version information contained in an executable file's resources.

The component reads information from a designated file's VERSIONINFO resource. The required file is specified in the component's FileName property. Setting FileName to the empty string fetches version information for the executable containing the component. The boolean HaveInfo property indicates whether the file contains version information. This component can access variable file information for each language provided in the resource.

Run-time properties enable access to to version information. Properties enable:

  • Access to fixed file information, either by field or the whole record.
  • Access to the number of translations stored in the version information.
  • Selection of the translation for which information is to be returned by other properties.
  • Access to the language and code page of the current translation - by code and by name.
  • Access to the string file information for the current translation - named properties access the Microsoft-defined string information, while an array property gives access to any string item by name.
The component makes calls to the Windows API. Therefore the version information being read must follow the Microsoft guidelines - be warned that not all software complies.

For detailed information about version information refer to the Win32 SDK.

A help file is provided that integrates with the help system of Delphi 3 to 7 only. The component is also documented online.

The source code for two demo projects is included.

Informations

  • Status: Fully functional
  • Source: Included
  • Exe demo: included
  • Size: 75kB

Platforms: CB1, CB3, CB4, CB5, CB6, D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE64

TPJWdwState & TPJRegWdwState v.5.4.1

Components > Forms > State savers

By Peter Johnson.

Freeware + source 10 Jan 2013

Description

The window state components can save and restore a window's size, position and state (minimized, maximized or normal) between program executions. Three components are provided that use different means of storing the information. They are:
  • TPJWdwState: This component records window information in an ini file. The user has control over the ini file name (via the IniFileName property) and the name of the section of the file where window information is recorded (using the Section property). Alternatively the ini and section names can be configured by handling the OnGetIniData event that is triggered immediately before the ini file is read or written.
  • TPJRegWdwState: This component uses the registry to record window information. The registry root key and sub key where the information is stored are controlled by the RootKey and SubKey properties, or by handling the OnGetRegData event. This event is triggered just before the registry is accessed.
  • TPJUserWdwState: This component relies on the user to handle saving and reading the window state data to or from persistent storage. The component gives the most flexibility of all the components at the expense of placing the storage burden on the user. The component triggers OnReadData and OnSaveData events when it is ready to read or save data.
All components implement the same functionality, controlled by some common properties and events, as follows::
  • The components can automatically restore and save windows when the program starts up and closes down (using the AutoSaveRestore property). If AutoSaveRestore is set to False then the Restore and Save methods must be called from the host application.
  • The Options property can be used to customise the way the window is restored. State, and position can be ignored, which is useful for dialog boxes that should retain the same size and not be minimizied. The window can also be kept within the desktop's work area.
  • When the form is to be restored in a minimized state it briefly appears on screen in the normal state before being minimized. The MinimizeDelay property controls the delay between the window appearing and being minimized.
TPJWdwState and TPJRegWdwState also support the OnReadWdwState event. Handling this event enables the stored window's state, size and position values to be changed before the window is restored. This event is called after reading the data and before sizing the window. TPJUserWdwState does not expose this event because the user is in charge of reading the data and can modify it in the OnReadData event.

An abstract base class for both components TPJCustomWdwState is also provided. This class provides the core window handling and sizing functionality. It provides abstract methods for accessing the required storage medium. Therefore it is quite straightforward to create further components that use alternative storage systems. All that needs to be provided are methods to read/write the window information along with any additional properties that are required to configure the storage medium.

Compatible with 32bit and 64bit targets with Delphi XE2 or later.

A help file is included that integrates into the Delphi 3 to 7 OpenHelp system. The help does not integrate with Delphi 2005 and later, but can be used independently of the IDE, with some loss of functionality.

The components are also documented in a wiki.

A property editor is provided for editing HKEY values (such as the registry root key property of TPJRegWdwState). This editor is also available separately.

Informations

  • Status: Fully functional
  • Source: Included
  • Size: 70kB

Platforms: D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7, DXE, DXE2, DXE3, DXE64

Version Information Spy v.7.2.0

Developer Tools > Project > Other

By Peter Johnson.

Freeware 22 Sep 2013

Description

Version Information Spy displays the version information contained in an executable file or DLL. The program makes version information details available in several ways:

  • From a Windows application that displays detailed version information in its main window. The program can generate and display reports about the version information in either plain text or HTML format. It can also decompile the version information into .rc source code. Version information that departs from the Microsoft recommended standard can be highlighted and details of how to revise the source code to meet the standard can be displayed.
  • There is a command line version of the application that writes text reports or decompiled source code to standard output. The reports can be redirected to output files.
  • Two Explorer extensions are also provided. A menu item is added to the Windows Explorer context menu for registered file types. Clicking this menu item displays the selected file's version information in the Windows application. Additionally, a new tab is added to the property sheet associated with registered files if they contain version information. The new tab is named Version Extra and it provides more comprehensive details of a file's version information than is displayed on the existing Version tab. The Explorer extensions can be configured from the Windows application.

Version information can be extracted from any Windows NE or PE format executable files (i.e. 16 and 32 bit exes, dlls etc). Version Information Spy 7 can also extract version information from 32 bit binary resource files that contain a version information resource. Multi-lingual version information resources are supported. The program can read version information from most of the many programs that don't follow the Windows version information specification.

New in release 7:

  • Version Extra tab added to Explorer's property sheet for registered files.
  • Improved HTML reports.
  • Suggest on how to correct to inconsistencies in version information.
  • XP theme support
  • Several usability improvements.
  • Standard Windows installer, created using Inno Setup.

Informations

  • Status: Fully functional
  • Source: On request
  • Size: 1 141kB

Platforms: D2, D2005, D2006, D2007, D2009, D2010, D3, D4, D5, D6, D7