VCL and RTL enhancements since Delphi 7 (D7)

Nick Hodges put together a list of changes to the VCL since D7 and I thought I’d pitch in and help expand since it only includes a few of the high level items. I’ll try and avoid duplicating items Nick’s list (no guarantees). This is by no means an exhausive list and does not include bug fixes nor does it mention cases where we’ve made numerous methods virtual/protected to better enable descendant classes.

  • New TDragObject properties AlwaysShowDragImages and RightClickCancels
  • New TDragDockObject properties EraseDockRect and EraseWhenMoving
  • New classes TCustomControlAction, TControlAction, TCustomTransparentControl, TColorListBox, TTrayIcon
  • Many new methods on TControlActionLink for binding to additional properties on TControls
  • New Control States: csDesignerHide, csPanning, csRecreating, csAligning
  • New Control Styles: csPannable (mousewheel support), csAlignWithMargins
  • New events published throughout VCL: OnMouseActivate, OnMouseEnter and OnMouseLeave now with reliable enter/leave detection
  • New events on TWinControl OnAlignInsertBefore and OnAlignPosition for use with alCustom alignment style
  • New TWinControl property MouseInClient
  • New TDragImageList property DragHotSpot
  • New TDockZone property ChildControl
  • TDockTree has many new methods for better mouse support
  • Improved double buffered painting performance
  • Updated appearance with gradient painting support for TControlBar
  • New events on TControlBar BeginBandMove/EndBandMove
  • New properties on TControlBar CornerEdge, DrawingStyle, GradientDirection, GradientStartColor and GradientEndColor
  • New property on TColorBox: OnGetColors
  • New properties on TCustomForm: PopupMode, PopupParent
  • New properties on TScreen: CursorCount, FocusedForm, SaveFocusedList, PrimaryMonitor
  • New properties on TApplication: ActionUpdateDelay, ActiveFormHandle, MainFormHandle, MainFormOnTaskbar, ModalLevel, ModalPopupMode, PopupControlWnd
  • New events on TApplication: OnGetActiveFormHandle, OnGetMainFormHandle
  • Improved drawing support meaning less flicker for many controls throughout VCL
  • Constants for standard web colors added to Graphics.pas
  • RGB conversion routines for working with web colors/color names
  • New Pen Styles: psUserStyle, psAlternate
  • New property on TFont: Orientation
  • Enumerator support on numerous classes throughout VCL for use with “for…in”
  • New property on TOleControl: ServiceQuery
  • New action: TBrowseForFolder
  • New property on TLabel: EllispsisPosition
  • New property on TComboBox: AutoCompleteDelay
  • New property on TListBox: AutoCompleteDelay
  • New properties/events on TTabSet: Images, ShrinkToFit, TabPosition, OnGetImageIndex
  • Numerous ActionBand menu enhancements

To elaborate on Nick’s FastCode mention there is the following on the RTL side:

  • New high performance memory manager
  • FastCode routines:
    • Move
    • _FillChar
    • _LStrCmp
    • Pos
    • __lldiv
    • UpperCase
    • LowerCase
    • CompareStr
    • CompareMem
    • CompareText
    • StrLen
    • StrCopy
    • StrComp
  • Numerous inlined routines throughout the RTL

[Update: Mar 2, 2007] Fixed typo.

2 thoughts on “VCL and RTL enhancements since Delphi 7 (D7)

  1. Wow, I was unaware of several of these! I use actions a lot, but TBrowseForFolder is a big surprise, as is EllispsisPosition on a TLabel!
    The new Margins and Padding properties introduced in BDS 2006 (I think) are also amazing for creating UI without the need to add spacers all over the place. A big thank you to whoever thought of that!
    Thanks for this great post Steve!

  2. "New TDragObject properties AlwaysShowDragImages and RickClickCancels"
    1) Why does Rick get preferential treatment?
    2) Will there be a TDragObject.DaveClickCancels in a future version?

Comments are closed.