Use and/or distribution of the files requires compliance with the SpTBXLib License, found at:
Alternatively, at your option, the files may be used and/or distributed under the terms of the Mozilla Public License Version 1.1, found at:
Software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
The initial developer of this package is Robert Lee.
Do I need to register?
Registration is required only if you choose the SpTBXLib License which allows you to not include an acknowledgement in your application's about box or help file, and also allows you to keep the modifications you've made to SpTBXLib without having to make them public.
To register click here.
No registration is required if you choose to use SpTBXLib under the Mozilla Public License Version 1.1.
However, if you wish to express your appreciation for the time I spend on developing, documenting and supporting it, I do accept and appreciate donations.
To donate click here.
Thank you for your support.
18 September 2023
SpTBXLib for RAD Studio XE2 and up
18 September 2023
SpTBXLib compiled demos
15 April 2013
Old version for Delphi 7-XE3 and C++Builder 7-XE3
You can get the latest sources via Git. Sources obtained via Git may contain fixes or new features not found in the latest released version. However, those fixes and new features may not have yet been fully tested.
18 September 2023 - version 2.5.10
- Updated TB2K patch, removed VirtualImageList scaling on
- Added ActiveTabVisibleOnResize property to SpTBXTabSet and TSpTBXTabControl,
when set to true the active tab will always be visible when resizing.
- Added mouse wheel scrolling to SpTBXTabSet and TSpTBXTabControl.
- Fixed #106, scaling back from a very high DPI causes the toolbar items to be
shrinked to 0
- Fixed #105, ActiveTab goes out of view when restoring from a minimized state
- Fixed Tabs painting on High DPIs, corrected border scaling.
- Fixed TabSet and TabControl background painting on the default Windows theme.
- Updated TB2K patch, fixed #107: TTBCustomAccObject.Destroy is called after the
critical section is deleted. MSAA client still holds acc. object references.
- Added tcbOnHotTrack to TabCloseButton property, the close button will be visible
when the tab is hottracked or if it's the active tab.
- Fixed #108: incorrect TSpTBXCustomizer DPI scaling
- Fixed #108: TVirtualImageList.Assign doesn't set Width and Height
18 January 2022 - version 2.5.9
- Added Rad Studio 11 Alexandria support.
- Added 24x24 images to SpTBXReg.DCR to fix a Rad Studio 11 bug: the IDE doesn't
recognize 24x24 glyphs if the resource name doesn't include "24", breaking
compatibility with older DCR files.
- Added PNG images to SpTBXReg.DCR to fix a Rad Studio 11 bug: the IDE doesn't
recognize color-keyed glyphs, breaking compatibility with older DCR files.
- Added design time styling introduced on Alexandria.
- Added StyleName property allowing per control Delphi Styles introduced on Sydney.
Few notes regarding per control styling:
1) The StyleName must be one of the names of the styles in the project options.
2) If StyleName is empty the control tries to use the Parent's StyleName.
3) If StyleName is set to 'Windows' it disables custom styling for the control.
4) If TStyleManager.UseSystemStyleAsDefault is set to True, it disables custom
styling on all the controls that have an empty StyleName.
5) Per control styling works when using custom Styles:
6) Delphi Styles and SpTBXLib Skins can't be mixed.
7) Using SpTBXLib Skins activates the default System Style.
- Removed support for Delphi XE1.
- Removed SpTBXThemeServices, call StyleServices or SpTBXStyleServices instead.
- Removed CurrentSkin.GetThemedSystemColor, call StyleServices.GetSystemColor or
27 February 2021 - version 2.5.8
- Updated TB2K patch with Kiriakos Vlahos latest changes.
- TB2Common.pas changes: added various global function helpers to support
TImageCollection and TVirtualImageList, using RTTI to access fields,
properties and methods of structures on VirtualImageList and ImageCollection.
Otherwise we must include vclwinx.bpl package to the Requires section of the dpk,
doing so we must create different packages for different Delphi versions.
vclwinx was introduced in Delphi Seattle but TImageCollection and
TVirtualImagelist were introduced on Rio.
If we add vclwinx package and access TImageCollection and TVirtualImageList
directly then we can delete the helpers.
We must use SpGetScaledVirtualImageListSize to get the correct
We must use SpDrawVirtualImageList to draw an image on the VirtualImageList.
- TB2Dock.pas changes: removed TTBVirtualImageList, it was added by
Kiriakos Vlahos to scale the toolbar images when the floating toolbar was
placed on a different monitor. The scaling was done by stretching the images
with HQ bicubic interpolation.
It was removed because TVirtualImageList support was added. In my opinion
TVirtualImageList is a better solution, instead of stretching the images
TVirtualImageList tries to find the images based on the size.
- TTBDock.GetDockedBorderSize: reverted, the borders should not be scaled.
- TTBDock.DefaultScalingFlags: reverted
- TTBCustomDockableWindow.GetDockedBorderSize: reverted, the borders should
not be scaled.
- TB2Ver.inc: added LEGACYIFEND compiler option.
- Removed Windows XP Luna theme check.
- Restored compatibility with older versions of Delphi, removed vclimg and vclwinx
from the package requirements.
- Updated Overview demo, IL wasn't scaled when starting on a High DPI monitor
- Added missing Glyphs dir to the Overview Demo.
- Added TSpTBXDockablePanel DPI scaling.
- Added TSpTBXToolWindow DPI scaling.
- Fixed TSpTBXPageScroller to support High DPI.
- Fixed TSpTBXComboBox painting when Style is csDropDownList.
- Fixed incorrect floating window painting when using Styles.
- Fixed incorrect font preview painting on TSpTBXFontComboBox when using Styles.
- Fixed unexpected return value of SpCalcMaxDropDownWidth on 64bit.
- Fixed item anchoring.
- Fixed a DockablePanel aligning when the DFM was loaded and DPI was different.
- Fixed incorrect TSpTBXDockablePanel scaling.
24 December 2020 - version 2.5.7
- Added RAD Studio 10.4 Sydney support.
- Added High DPI and Per Monitor V2 awareness. Added all the changes made by
PyScripter with some modifications. More testing needed.
- Fixed incorrect border painting on floating DockablePanels
- Fixed incorrect checkbox and radiobutton size when using Delphi Styles
- Fixed TSpTBXSubmenuItem incorrect painting when DropdownCombo was True.
- Fixed TSpTBXTrackBar incorrect painting when using Delphi styles
- Fixed TSpTBXCustomizer.Save/SpTBIniSavePositions/SpTBRegSavePositions, it now
saves the DPI and scales the positions of the forms, toolbars and dockable panels
- Fixed TSpTBXToolbar scaling when changing the DPI.
- Changed some PPIScale params to DPI, to better match Delphi Styles method calls.
- Changed Overview demo to support High DPI and Per Monitor V2 awareness.
- Changed tb2kdiff, TB2K needs to be repatched: added High DPI support by
PyScripter, and fixed TB2K bug (FloatingPosition is reset after
ReadPositionData is called, see TB2Dock.TBCustomLoadPositions).
22 January 2020 - version 2.5.6
- Allow localization of clNone and clDefault color names in TSpTBXColorEdit
- Fixed MDI button high DPI scaling issues.
- Fixed TSpTBXEditItem.StartEditing handling, it resets DoneAction to
tbdaNone before entering in editing mode.
- Fixed double buffer painting on TTBCustomDockableWindow.WMMove
- Fixed incorrect MDI button painting.
- Fixed incorrect Caption painting on TSpTBXPanel when Font color is changed.
26 November 2018 - version 2.5.5
- Added RAD Studio 10.3 Rio support.
- Added TB2K patch files
- Fixed compile errors on XE1
- Fixed DPI scaling issues
- Fixed toolbar resize flicker
21 September 2018 - version 2.5.4
- Added RAD Studio 10.2 Tokyo support.
- Added high DPI support, thanks to PyScripter.
- Added MouseWheel property to TSpTBXSpinEdit.SpinOptions, when set to
true using the mouse wheel will increment or decrement the value of
the spin edit control.
- TSpTBXSkinGroupItem now lists available VCL Styles.
- Minor bug fixes.
- New requirement: SpTBXLib supports RAD Studio XE and up.
- New requirement: apply TB2K patch 1.1 before installing.
21 May 2016 - version 2.5.3
- Added support for RAD Studio XE8, RAD Studio 10 Seattle and
RAD Studio 10.1 Berlin
28 October 2014 - version 2.5.2
- Added support for Delphi XE7
28 May 2014 - version 2.5.1
- Added support for Delphi XE6
18 March 2014 - version 2.5
- Added support for Delphi XE4 and XE5
- Removed support for older versions of Delphi, SpTBXLib supports
Delphi 2009 or newer.
- Fixed TSpTBXTabControl flicker when used inside of a
- Minor bug fixes.
15 April 2013 - version 2.4.8
- Minor bug fixes.
- Removed SkinType property from all components.
- Added support for Delphi XE3.
7 February 2012 - version 2.4.7
- Added support for Delphi XE2, thanks to PyScripter and Denis Kisalev
- Added support for 64 bit Delphi compiler.
- Added support for Delphi Styles.
- Minor bug fixes.
Complete Release History