Showing posts with label CodeGear. Show all posts
Showing posts with label CodeGear. Show all posts

TitleBar - Delphi component which adds many features: AutoHide, SetRegion, border width for form, color for everything, good looking borders, ShowInTaskbar, etc.

TitleBar - Delphi component which adds many features
This is a curiosity component demonstrates, what can be made of Delphi forms and control elements.
This is another note for Delphi code modernization trend
Changes in TTitleBar by Valient Newman in an attempt to revive an old project and to make the component meet the requirements of Delphi 6 and higher.
Corrections were tested in Delphi 2007, 2009 environment. Date last modified by Newman: January 30, 2025
Checked in in Delphi 2007, 2009
Updated January 30, 2025

TTitleBar v2.01

TitleBar - Delphi component which adds many features: AutoHide, SetRegion, border width for form, color for everything, good looking borders, ShowInTaskbar, etc.

The components TTitleBar v2.01 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. Source code is provided free of charge. The software is provided to you “AS-IS”. As such, there is no guarantee of any support whatsoever.


credits to:
Seth Taylor made this component on February 8, 1999 on Delphi 3

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...'

TdfsEllipsis Panel Demo
Delphi code modernization trend
Changes in TdfsEllipsisPanel have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsEllipsisPanel v1.20

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...' when it does not fit the available space. Also a generic function that "ellipsifies" a string is provided.

The components TdfsEllipsisPanel v1.20 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever. The component throws an Access violation error and its source code can be used as an example for study.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS GrabBar - Delphi component, grab bar, or splitter, to allow two windows to be resized simultaneously

TdfsGrabBar Demo
Delphi code modernization trend
Changes in TdfsGrabBar have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsGrabBar v1.17

DFS GrabBar is a bar that allows two TWinControl components to be resized by dragging it.

The components TdfsGrabBar v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS MRUFileList - Delphi component to simplify adding MRU file lists to menus

TMRUFList Demo with RadStudio Delphi 2009 Closed Files list
Delphi code modernization trend
Changes in TdfsMRUFileList have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 2007, 2009
Updated 21 dec 2025

TdfsMRUFileList v2.68

DFS MRUFileList - Delphi component that greatly simplifies adding MRU file lists to menus.
TMRUFList Demo was made with RadStudio Delphi 2009 Closed Files list in mdFileNameOnly.

The components TdfsMRUFileList v2.68 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS", and all risks and losses associated with it's use are assumed by you. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

MiTeC File Explorer is Windows Explorer-like component

TMFileExplorer Demo
Delphi code modernization trend
Changes in TMFileExplorer have been made by Valient Newman to make the component meet the requirements of Delphi 6 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 20 dec 2025

TMFileExplorer v1.15

MiTeC File Explorer is Windows Explorer-like component.

The components TMFileExplorer v1.15 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Michal Mutl his GitHub
Copyright © 1999, 2003.

DFS Icon Controls: Icon ComboBox and Icon ListBox caching components for Delphi

TdfsIconComboBox Demo with Delphi 2009 icons
Delphi code modernization
Changes in TdfsIconComboBox and TdfsIconListBox have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TdfsIconComboBox and TdfsIconListBox v1.17

The caching Icon ComboBox and Icon ListBox components for Delphi.

A dropdown list style combobox that displays the icons that exist in a given file, and a listbox that displays the icons that exist in a given file, either horizontally or vertically.

TdfsIconListBox Demo with Delphi 2009 icons

Features: Optionally, the control can disable itself when the filename is invalid. Optionally, the control can load icons "on demand." This speeds up the initialization process greatly because all icons do not have to be loaded when the control is created. Many file formats can be read from, including: .EXE, .DLL, .ICO .ICL { PCTools? Icon Library .NIL { Norton Icon Library ListBox can simulate a grid of icons, allowing you to set the number of icons to be displayed in both the X and Y direction. This setting can be changed dynamically.

The components TdfsIconComboBox and TdfsIconListBox v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”) Copyright 1996, Brad Stowers. All Rights Reserved.

FWTrayIcon - component for registering class to work with the system tray

FWTrayIcon - component for registering class to work with the system tray demo
Delphi code modernization
Changes in TFWTrayIcon by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TFWTrayIcon v1.05

Сomponent for registering class to work with the system tray.

The component TFWTrayIcont v1.05 is available in My Github Repository

The component has realization issues for instance with hint display and the use of this component is on your own risk.

The software is provided as is without any garanties and warranty.
This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

FWHint - component to register class to work with application hints

FWHint - component demo
Delphi code modernization
Changes in TFWHint by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025

TFWHint v1.05

Сomponent for registering class to work with application hints.

The component TFWHint v1.05 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

DlgTest is design-time testing of TCommonDialog component descendants

CodeGear Delphi 2007
Delphi legacy code modernization
Corrections brought in DlgTest by Valient Newman to make the component meet the requirements of Delphi 6, when the design-time and runtime code must be separated.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025
The component DlgTest is available in My Github Repository This component can be freely used and distributed in commercial and private environments.

DlgTest v1.05

Design-time testing of TCommonDialog component descendants.
credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS Color Button

Delphi legacy code modernization
Corrections brought in CBtnForm, ColorAEd, DFSClrBn by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher, where WinTypes, WinProcs units are absent.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 15 dec 2025

TdfsColorButton v2.62

A Windows 95 and NT 4 style color selection button, which displays a palette of 20 color for fast selection and a button to bring up the color dialog.

This component can be freely used and distributed in commercial and private environments.

The component DFS Color Button is available in My Github Repository



credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

If WinTypes and WinProcs units are absent in Delphi

Alias to the project: WinProcs=Windows WinTypes=Windows
WinTypes and WinProcs units are absent in Delphi 2 and higher.

WinTypes.pas and WinProcs.pas are units from Windows 3.1x., they come from Turbo Pascal and Delphi 1.
In Win9x and later they were replaced with Windows.pas.


First solution to add an alias to the project: WinProcs=Windows, and WinTypes=Windows.
Delphi admits some aliases. For example, aliases for backwards compatibility from WinProcs and WinTypes to Windows.
The full string with conditional compilation directives may be sush as WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

Second solution is to use in code conditional compilation directives for various Delphi versions.

{$IF CompilerVersion >= 9.0} // Delphi 2 and higher Windows, {$ELSE} WinTypes, WinProcs, {$IFEND}
Remaking old components for Delphi
Переделывая старые компоненты для Delphi

Windows 64bit Delphi 2007/2009 Debugger Fix / Workaround with "Assertion failure" error

«SetThreadContext failed» Delphi 2007/2009 Windows x64
This error is typical not only for 7, but also for subsequent Windows 64-bit. Delphi 2007 and 2009 are susceptible to the "Assertion failure" error.
If one run Delphi 2007 or Delphi 2009 on Windows 64bit and met the Assertion failure when hit F2 or exit out of the program, this strange error dialog occurs: bds.exe - bordbk105N.dll Assertion failure: "(!"SetThreadContext failed")" in ..\win32src\thread32.cpp at line ... Continue execution? If Press No or ESC key will close the whole IDE. Pressing Yes may prompt for the same dialog.

There was an unofficial hotfix at CodeCentral - ID: 27521, RAD Studio 2007 Debugger Fix for Windows 7 that now is unavailable.

Further is a temporary solution for this problem.
Using any hex editor, for example, mh-nexus, an open source version.
1. Close Delphi
2. Make a backup of the library bordbk105N.dll (version should be 105.11.1.12533) for Delphi 2007, bordbk120N.dll (version should be 120.903.17.15115) for Delphi 2009
For Delphi 2007
the location is "%ProgramFiles(x86)%\CodeGear\RAD Studio\5.0\bin\bordbk105N.dll",
for Delphi 2009
the location is "%ProgramFiles(x86)%\CodeGear\RAD Studio\6.0\bin\bordbk120N.dll"
3. Open the library file in hex editor
4. Look for hex string in the file
01 00 48 74 47 80 3d
There is only one(!) HEX 01 00 48 74 47 80 3D
5. Change it to
01 00 48 EB 47 80 3d
74 is replaced with EB
6. Save
7. Restart Delphi and the error message should be gone. That’s all. Now the debugger runs on Windows 64bit.

Or try to find the in the internet the ready-to-use patcher Delphi_2007_2009_WOW64_Debugger_Fix.zip (Delphi_2007_2009_WOW64_Debugger_Fix.exe) who will do the same for you.

CodeGear Delphi 2007
My first note was «SetThreadContext failed» Delphi 2007/2009 Windows x64.
Here I made more detailed explanation.
An put a concise version of the article on Stackoverflow

TBytesStream class for Delphi 2007

CodeGear Delphi 2007
TBytesStream class was added in Delphi 2009, so I define it manually for CodeGear Delphi 2007. type TBytesStream = class(TMemoryStream) private FBytes: TBytes; FCapacity: Longint; FSize: Longint; protected function Realloc(var NewCapacity: Longint): Pointer; override; public constructor Create(const ABytes: TBytes); overload; property Bytes: TBytes read FBytes; end; Full unit published on Github

ZEOS Library 8.0.0 does not support Delphi 2007 and older

ZEOS Library
A file ZBase64.pas appeared in the ZEOS Library 8.0.0 in folder with path "src\core\" that can not be compiled.
The class TBytesStream in ZBase64.pas was added in Delphi 2009.

SqlitePass support for the Rad Studio Delphi 2007

CodeGear Delphi 2007
This my addition gives the support for Rad Studio Delphi 2007 to SqlitePass and quite possible to Delphi 2005, 2006.
The most significant processing has been made to the file SqlitePassDbo.inc
Published on Github

Delphi 2007 - Error creating form: Failed to set data for...

CodeGear Delphi 2007
The error message like this - "Error creating form: Failed to set data for..." appears on IDE CodeGear Delphi 2007 startup.
This situation occurs due to lack of access rights.
A simple and obvious half-measure is to run IDE CodeGear Delphi 2007 with administrator rights.
For example - check "Run this program as an administrator" in the "Compatibility" tab in Properties menu.
Delphi 2007 - Error creating form: Failed to set data for...

Unable to load project in Delphi 2007. Only one top level element is allowed in an XML document

CodeGear Delphi 2007
Loading the project .dproj file created in a newer Delphi that older Delphi 2007 version can cause such an error:
"Only one top level element is allowed in an XML document"

There is the requirement for XML document to have exactly one root element.
The error informs that ".dproj file" which is the document in XML format does not adhere to this requirement and thus malformed.
Perhaps, the .dproj file has been corrupted.

Unable to load project in Delphi 2007. Only one top level element is allowed in an XML document
The most expedient way to solve this issue is to remove the .dproj file, launch the correspondent .dpr file and let the IDE regenerate one.
If the matter is with dpk file, the way to solve is to create an empty package and import the files in.

HexEditor

HexEditor

Simple corrections brought in THexEditor, THexToCanvas by Valient Newman to make the component meet the requirements of Delphi 6 and higher, when the design-time and runtime code must be separated.
Changes published September 6, 2023


Updated 15 dec 2025

Corrections were made to comply with Delphi 2009 requirements.

Checked in Delphi 7 and Delphi 2007, 2009

This component is used in Activity and Authentication Analyzer

The component HexEditor is available in My Github Repository

THexEditor v1.18, THexToCanvas v1.0 Beta 2

THexEditor descends from TCustomGrid, and displays and edits hexadecimal/binary files THexToCanvas is a descendant of TComponent, assign a THexEditor to it, set some properties and you can paint the hex data to a canvas (e.g. printer canvas)

credits to:

John Hamm, john@snapjax.com, http://users.snapjax.com/john/ (s.b. for details)

Christophe LE CORFEC, CLC@khalif.com for his introduction to the EBCDIC format and the nice idea about half byte insert/delete

Philippe Chessa, Philippe_Chessa@compuserve.com for his suggestions about AsText, AsHex and better support for the french keyboard layout

Daniel Jensen, no_comply@usa.net for octal offset display and the INS-key recognition stuff

written by Markus Stephany, mirbir.st@t-online.de, http://home.t-online.de/home/mirbir.st


Переход на новые версии Delphi

No metadata could be loaded for: BlackfishSQL

Database Explore
Description of the problem is given for Delphi 2007.
Window of "Database Explore"
No metadata could be loaded for: BlackfishSQL
While an attempt to launch the "SQL Window" the Message box with error appeared.

Now is the solution:
While the RAD installation "dataexplore.exe.config" file is stored into the path:
"C:\Users\All Users\{6AF0EFC6-B937-4704-A430-319EB93F4C12}\dbexplr\D3C32C11\E7AAAB64..."
The way with aliases is:
"C:\Documents and Settings\All Users\Application Data..."
The "Database Explore" [dataexplore.exe] turns to the contents of the "Config file" [DataExplore.exe.config] which is in the "C:\Program Files\CodeGear\RAD Studio\5.0\bin" path.
The problem is solved by coping the "Config file" from the directory with "All users" path to the "bin" one!

F1026 File not found: 'DockForm.dcu'

CodeGear Delphi 2007
Migrating to Delphi 2005/2006/2007/2009/2010 and higher ussues while Delphi code modernization trend.
There is no DockForm.pas in Delphi 2005/2006/2007/2009/2010 sources but you can use it in your application.
DockForm with such a name appeared in Delphi 4/5, with name uDockForm was in Delphi 6/7.
This is a piece of humpbacked advice:
Just add "designide" in Project -> Options -> Packages -> Build with runtime packages.
The design time package with the code in it is needed, add to "require" section.
Such an advice is applied for research only purposes.
First: to run the application on a computer where Delphi is not installed, one will need the copy bpl-file is required.
Second: it is not allowed to deploy any of that code, copyright would be infringed. One should never be recompiling the code in the toolsapi source directory.
Stub unit
Unit can be used as a temporary measure, a palliative while migrating to new versions of Delphi
unit DockForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
type
  TDockableForm = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DockableForm: TDockableForm;

implementation

{$R *.dfm}

end.

Stub DockForm.dfm
object DockableForm: TDockableForm
...
...
end

If you see "...", this means the code is incomplete and this is done intentionally.
If you are unable to apply this, please contact for assistance.
Вы видите "...", это означает, что код не завершён и сделано это намеренно.
Если вам не удалось применить, обращайтесь за консультацией.