V3.6 : 15 October 2013
- Added support for Embarcadero RAD Studio XE4 and XE5.
V3.5 : 15 October 2012
- Modified the control slightly so that the hints respect the Application.HintPause property.
- Added support for Embarcadero RAD Studio XE3.
V3.4 : 10 November 2011
- Added support for Embarcadero RAD Studio XE2.
V3.3 : 1 November 2010
- Added support for Embarcadero RAD Studio XE.
V3.2 : 25 August 2009
- Added support for Embarcadero RAD Studio 2010.
- Adjusted the end coordinates of the rsLine style to allow for Windows rounding the end.
- Added rsTopLine and rsBottomLine display styles.
- After calling the PaintTo method, restored the value of the VerticalPageSize.
- Prevented the scrollbar from continuing to scroll once the bottom of the chart has been reached.
- Set the Version read-only property to not be stored.
V3.1 : 5 January 2009
- Added an OnVerticalScroll event.
- Prevented an array bound violation that could occur when reading the FirstDisplayedResource property after deleting all resources.
V3.0 : 1 September 2008
- Renamed all classes and types to add an "ss" prefix (There is already a TResource class in the Graphics unit, and this name conflict caused problems for users of C++Builder.)
- Changed the package name and installation folders for Borland Development Studio 2005 and 2006, and CodeGear RAD Studio 2007 and 2009, to be "BDS 2005", "BDS 2006", "CRS 2007" and "CRS 2009" respectively. This is to better reflect the names of the IDEs that the component can be used with, since the component is not limited to just the Delphi personality.
- Removed the custom property editor for the RoundTo, DateLabelInterval, DateLineInterval, and PlotBackAlternateInterval properties in Borland Development Studio 2005 and 2006, and CodeGear RAD Studio 2007 and 2009. This property editor caused the Design IDE package to be required at runtime, which again, caused problems for C++Builder users.
V2.17 : 15 August 2008
- Added support for CodeGear RAD Studio 2009.
V2.16 : 28 November 2007
- Added OnCustomHint event and TCustomHintEvent type to allow the component user to override the default hint.
- Corrected a bug that prevented the OnResourceNameClick event from being invoked.
- Changed the SelectAllocationsInRect method to work around a Windows feature that prevented allocations displayed with a width of one pixel from being selected via a selection rectangle.
V2.15 : 22 April 2007
- Added support for Turbo Delphi Pro and Delphi 2007 for Win32.
- Added the ability to drag multiple allocations at once.
- Added properties to allow configuration of the stretch, drag and multi-drag cursors.
- Added the OnAllocationDragEndAll event invoked after all individual allocation drag events have been completed. For consistency, this event is also invoked when a single allocation is dragged.
- Added a read-only property containing the version number.
- Don't reset the selected resource and slot variables when the chart loses focus, as this prevents the use of message boxes in AllocationDragEndQuery, AllocationStretchEndQuery and AllocationSwitchResourceQuery event handlers.
V2.14 : 9 February 2006
- Added support for Delphi 2006 using VCL for Win32.
- Added a constant string containing the version number.
- Modified date line drawing code to prevent rounding errors causing line to be shown one pixel outside plot rect.
- Prevented Soft Gems' TThemeManager from blanking the chart by responding to the message CM_DENYSUBCLASSING. (See Soft Gems Theme Manager)
- When dragging allocations between resources, the chart could detect that the target datetime range was not free and disallow the drop, without first giving the component user the opportunity to adjust the start and end times.
- Changed FirstDisplayedIndex, LastDisplayedIndex, NumDisplayedResources, and VerticalPageSize so that they are set by the DoPaintTo function rather than calculated from the current position of the scrollbar. This is because the scrollbar is only valid for screen output, but PaintTo can be called for any canvas.
- Published the Visible property.
- Added an additional argument to the OnDrawResourceName event. This allows for simple selection of the background behind the resource name, without resorting to owner-draw handlers.
- Prevented the mouse wheel from scrolling beyond the bottom of the chart data.
V2.13 : 28 February 2005
- Added support for Delphi 8 and Delphi 2005 using VCL for Win32.
- Moved appearance-related properties into a separate class and added an overloaded PaintTo method to accept an instance of this class. This makes it simple to have the chart appear different when, for example, it's printed. This affects the following properties: Color, DateFormat, DateLabelInterval, DateLabelBase, DateLineColor, DateLineBase, DateLineInterval, DateLineStyle, DateTimeFont, DateTimeStyle, PlotBackAlternateColor, PlotBackAlternateInterval, PlotBackColor, PlotBorderColor, ResourceBottomMarginRows, ResourceLineColor, ResourceLineStyle, ResourceLineWidth, ResourceNameAlignment, ResourceNameWidth, ResourceNameFont (replaces Font property) ResourceSeparatorLineColor, ResourceSeparatorLineStyle, ResourceSeparatorLineWidth, ResourceTopMarginRows, RowGap, RowHeight, ShadowColor, ShadowDepth, TimeFormat.
These are now members of the new ChartAppearance property.
- Added FindAvailableSlot to find a datetime when several resources are all available. Added TDay and TDays types.
- Added racSortAllocations option, to maintain each resource's allocation list in an increasing datetime order. Added public TResource.SortAllocations and TResourceAllocationChart.SortAllocations methods.
- Added an additional check to ensure the new time range is available when setting the start and/or end times of an allocation.
- Added ResourceTopMarginRows and ResourceBottomMarginRows properties.
- Restructured the complex DoPaintTo method to move code into nested procedures.
- Improved display of date labels to prevent overlapping text.
- FindResourceFromY modified to prevent it from returning resources that aren't displayed.
- Process plot background alternation when the alternate colour is the same as the regular colour, if there is and OnGetPlotBackground event handler defined.
- Save and restore the plot rect and first displayed index in the PaintTo method. Prevents chart reverting to first resource after calling PaintTo.
- Improved implementation of GetVerticalPageSize and GetNumDisplayedResources methods.
- Added an AllowDrag var argument to the OnAllocationDrag and OnAllocationStretch events. Setting this to false causes the no-drop cursor to be shown.
- Changed the default value of PlotBackAlternateInterval from 1.0 to 0.0 as this better reflects the implicit Delphi default for floating-point numbers.
- Added rsLine allocation display style.
- Improved ranging of various display values to disallow values less than zero. See use of TIntegerZeroOrGrearter.
- Improved vertical scrollbar appearance by setting its PageSize property as appropriate.
- Allowed a second click on an allocation to deselect it.
- Moved exception error messages into resource strings.
- Corrected call to inherited DoMouseWheelUp.
- Ensure only one allocation can be selected when multi-select option is not enabled.
- Added OnAdjustDragRect event to allow the drag and stretch rects to be adjusted prior to display.
- Prevented double-clicks from dragging or stretching.
- Added option to only show the scroll bar if it is required.
- Removed the clipping region before calling OnDrawProgress with progress dpLabelsDone, and restored it afterwards. Reselect clipping region immediately before drawing an allocation as VCL may re-allocate a canvas handle after some operations, effectively removing any clipping region.
- Added property editor for date/time interval properties.
- Implemented property categories.
V2.12 : 12 July 2004
- If multi-select option is disabled while there are multiple allocations selected, clear all but the latest selection.
- Removed compiler directives, except for B-, short-circuit boolean evaluation. Now uses project defaults.
- Restore pen and brush state after calling owner-draw event handlers.
- Changed OnAllocationDragEndQuery, OnAllocationStretchEndQuery and OnAllocationSwitchResourceQuery events to pass new start and end times to the event handler. Split TAllocationDragStartOrEndEvent type into TAllocationDragStartEvent and TAllocationDragQueryEvent types.
- Added FindAvailableResources method to populate a list with resources that are available for a specified time.
- Added overloaded Sort methods to sort the resources.
- Added RefreshBitmap method to cause the bitmap to be redrawn. This could be useful if, for example, the chart has something time-dependant added in an owner-draw routine. Simply call this method in a Timer event.
- Added TResource.FindSlotAt.
- Don't display selected allocations with a pen width of 3. If this is required, implement a OnAllocationDraw event handler and set the pen width there.
- Added canvas to OnAdjustPlotRect event, as you may need to adjust the plot rect by varying amounts to suit different canvases.
- Corrected display position of hints for the resource name.
V2.11 : 5 January 2004
- Added InsertResource and ExchangeResources methods to TResourceAllocationChart so the order of resources can be better controlled.
- Published the Anchors and Constraints properties.
- Prevented the AM/PM indicator from appearing in a hint for the duration of an allocation.
- Added OnDateRangeChange event.
- Moved Style, AllowDragAllocation, AllowDragScroll, AllowAllocationSwitchResources, AllowStretchAllocation, AutoHint and ShowFocusRect properties into a single options set property. Deleted TResourceChartStyle type.
- Added options to cause the component to capture arrow and tab key presses.
- Added options to allow the date axis to be labelled at the top and/or bottom.
- Added OnAllocationDragEndQuery, OnAllocationStretchEndQuery and OnAllocationSwitchResourceQuery events to allow the drag operation to be cancelled.
- Added an option for owner-draw date labels.
- Added an option for owner-draw resource names.
- Added OnAdjustPlotRect event to allow the plot rect to be adjusted to allow for owner-draw labels.
- Allowed for selection, and multi-selection of allocations. Added ability to select multiple allocations by dragging over allocations with the control key pressed. Added OnAllocationSelectionChange event and DeselectAllAllocations method.
- Changed RoundTo, PlotBackAlternateInterval, DateLabelInterval and DateLineInterval properties from TDateTimes to doubles as these are displayed better in the Object Inspector.
- Added OnResourceNameAutoHint event to allow for hints over the resource name area.
- Renamed LineColor property to PlotBorderColor as this better reflects what it does.
- Renamed OnOwnerDraw event to OnOwnerDrawAllocation.
- Changed dynamic arrays of resources and allocations to TLists.
- Allowed allocation hints to be shown when the allocation has a start date of zero.
V2.10 : 30 June 2003
- Changed OnAllocationAutoHint event to add extra arguments that allow the format of the hint to be fully customised.
- Added OnGetPlotBackground to allow irregular colouring of the plot background. For example, to allow weekends to be in a different colour.
- Added TResource.DisplayRect to return the plot area used to display the allocations for the resource.
- Added OnDrawProgress event to enable custom graphics to be added at different stages in the drawing process. For example, to add graphics behind the allocations, but on top of the background.
- Added rsPointedBlock display style.
- Reduced the width of the resource name area when no resources are present.
- Removed sample data added in design mode.
V2.9 : 31 March 2003
- Corrected a rounding problem for automatically generated hints for allocations that were exactly one day long.
- Improved the calculation of NumDisplayedResources property.
- Added VerticalPageSize property.
- Added FirstDisplayedIndex and LastDisplayedIndex properties for easier programmatic vertical scrolling.
- Added TopIndex argument to PaintTo method, and changed it to a function.
V2.8 : 9 December 2002
- Added AnyObject and OwnsAnyObject properties to the chart, resource and allocation classes.
- Added TResource.FindFreeSlot method.
- Added TResource.Clear method.
- Added support for mouse wheel. Overrode DoMouseWheelUp and DoMouseWheelDown functions from TWinControl, and published OnMouseWheel, OnMouseWheelDown and OnMouseWheelUp events.
V2.7 : 11 November 2002
- Made TResource.FindSlotFromPoint method public.
- Added FindNearestSlot and FindSlot methods.
- Modified IsSlotFree slightly, to better allow for real-number rounding errors. In certain circumstances, it was possible to drag one allocation on top of another of exactly the same size.
V2.6 : 11 October 2002
- Added rsRoundRect and rsEllipse display styles.
- Added OnGetDateTimeLabelText event to allow bespoke date and time labels that cannot be generated via the DateFormat or TimeFormat properties.
- Added dtFirstDateAndTime and dtTimeAndFirstDate to only show the first date label, irrespective of the span of the chart. Time labels are always shown.
- Added OnBeforePaint and OnAfterPaint events.
- Added OnRightClick event.
- Reset the scroll bar position if there is sufficient room to display all the resources after resizing the chart.
- Fixed missing OnAllocationclick and OnAllocationDblClick events if AllowDragAllocation is false
- Prevented an unprotected call to OnAllocationDragCancel.
V2.5 : 1 August 2002
- Added the ability to drag allocations from one resource to another. Added OnAllocationDragOverResource, OnAllocationSwitchResource and AllowAllocationSwitchResources.
- Added the ability to display lines behind allocations. See ResourceLineColor, ResourceLineStyle and ResourceLineWidth properties.
- Added ResourceSeparatorLineWidth property.
- Added FindResource method.
- Added optional 'Strict' argument to FindResourceFromY.
- Added DataChanged event to make it easier to distinguish between changes to the resource data, and other changes to the chart.
- Added OnBitmapRedrawn event and made the off-screen bitmap accessible.
- Added OnDrawDateLabel and OnDrawDateLine events, and the corresponding TGetDateTimeEvent type, to allow irregularly spaced date labels and lines.
- Prevented resource names from slightly overlaying the plot when right-aligned in a fixed width.
- Prevented date labels from overlaying bevel when large bevel widths are used.
- Prevented switching of PlotBackColor and PlotBackAlternateColor while scrolling left when the DateLineBase is later than the start date of the chart.
V2.4 : 1 July 2002
- Added ShowFocusRect property.
- Added ResourceNameAlignment property.
- Added ResourceNameWidth property.
- Added optional separator lines between resources (see ResourceSeparatorLineColor and ResourceSeparatorLineStyle properties.)
- Added OnAllocationDrag and OnAllocationStretch events to enable the event handler to limit the extent of the dragging and stretching of allocations. Added the corresponding TAllocationDragEvent type.
- Changed profile of OnDragPlot to enable the event handler to limit the extent of the drag. Added the corresponding TDragPlotEvent type. (Note: The chart's StartAt and EndAt properties are now set AFTER this event handler has been called.)
- Added OnAllocationAutoHint to allow an event handler to change the automatically generated hint if desired. Added the corresponding TAllocationAutoHintEvent type.
- Added DateLabelBase and DateLineBase properties to allow the date labels and/or lines to be shown at specified dates and times.
- Added the dtNone date/time type to disable date/time labels.
- Added HintStyle property to allow separate styles for date/time labels and the automatically generated hint.
- Added OnPlotRectChange property.
- Added FirstDisplayedResource, LastDisplayedResource and NumDisplayedResources properties to allow programmatic vertical scrolling.
- Added EarliestAllocation and LatestAllocation properties to TCustomResourceAllocationChart and to TResource.
- Made FindResourceFromY method public.
- Added IndexOf method to TResourceAllocationChart and TResource classes.
- Added rsUpCalliper and rsDownCalliper display styles.
- Renamed TDragStartEvent type to TDragPlotStartEvent to be consistent.
- Correctly reset cursor after hovering over sizing area.
- Reset font colour after calling OnDrawResourceName event handler.
- Corrected vertical spacing of date and time labels when they are shown in a different font from the resource names.
- Corrected the hint shown when an allocation is exactly 24 hours long.
- Corrected the display of allocations when the ShadowDepth is set to zero.
- Repaint any contained controls as final step in the Paint method.
V2.3 : 11 March 2002
- Added DateTimeFont property.
- Added DateLineInterval property.
- Added PlotBackAlternateColor and PlotBackAlternateInterval properties to allow shading of alternate date/time periods.
- Added the ability to set the colour and display style of individual resource allocation slots.
- Added a SetDateTime procedure to TResourceAllocation and TCustomResourceAllocationChart to set both the start and end times of an allocation or chart in one operation.
- Added OnDrawResourceName event to allow modification of the colour of a resource name.
- Added OnResourceNameRightClick and OnResourceNameDblClick events.
- Renamed OnResourceNameClicked event to OnResourceNameClick (sorry for any inconvenience!)
V2.2 : 14 January 2002
- Added RowHeight and RowGap properties.
V2.1 : 31 December 2001
- Now shows the sizing cursor when the cursor is over the sizing area of an allocation.
- Corrected the line forming the bottom border of the chart.
- Added Tag property to TResource and TResourceAllocation.
- Added public read-only properties TResource.ResourceChart and TResourceAllocation.Resource.
- Prevented a range check error that could occur in certain circumstances when setting the scroll-bar page size.
V2.0 : 5 November 2001
- Added Style property and OnOwnerDraw event.
- TAllocationDrawEvent: removed DoFocusRect argument and changed Pen and Brush TColor arguments to TPen and TBrush for greater flexibility.
- Added dtDateAndTime time axis label option, and made it the default display format.
- Only show date in time axis labels if different from the previous date.
- Added focus indicator.
- Added PlotBackColor property.
- Added AutoHint property and code to identify a resource slot to set the hint. Also shows a hint while dragging or stretching an allocation when used with Delphi 5 and 6.
- Added DateFormat and TimeFormat properties to allow overriding of default time axis label and hint formats.
- Added DateLineStyle property.
- Published KeyDown, KeyUp and KeyPress events.
- Published ShowHint and Hint properties.
V1.1 : 6 August 2001
- Fixed problem with PaintTo method.
V1.0 : 1 February 2001
- Initial release.