Delphi – Looking for a scheduling/calendar component


I'm looking for a custom visual component for Delphi 7 which handles scheduling on a calendar. I'm not looking for an actual calendar, and I'm definitely not looking for some overhauled licensed component. I just want a simple visual component, with a trackbar-like list of items. For example, along the left, I could have employee names listed. Each of those records stretches across the control. To the right, the X axis represents time, and each employee (Y Axis) record could have multiple time periods (start..finish), which are not only displayed to the right of the employee, but also user can resize each period, drag them, delete them, etc. It's obviously going to be used for that exact purpose, for scheduling employee hours. I don't need anything which is integrated with anything else, such as database, I can do all that work myself. I just want a simple control that can be used for visually creating such a schedule.

Best Solution

Visual Plan-It sounds like it might fit the bill. It's one of the old TurboPower Software component libraries they were nice enough to make open-source when they went out of the VCL business.

You didn't mention what version of Delphi, but AFAIK the above works with all versions of Delphi through 7. You may be able to find an updated version for D2009 and above (with Unicode support) if you search around a bit.

EDIT: After looking at Visual Plan-It, it appears there are only a few changes you have to make to get it to compile under XE2. If you open the Delphi 7 package (v103_d7.dpk) and then choose Install from the Project Manager context menu, you'll get an error on many lines containing a pointer dereference operator (^) as in List^; simply remove the operator leaving the member name, as in List.

The remaining errors are related to an invalid call to inherited; (changing it to inherited SetPointer(Ptr, Size); instead fixes it, and a call to LoadBitmap that complains about incompatible types: PWideChar and PAnsiChar - this one just requires changing LoadBitmap to LoadBitmapA, as the param passed to the function that calls it is declared as receiving a PAnsiChar parameter.

You'll also need to write your own descendent of TVpCustomDataStore (see VpBaseDS.pas) to handle data storage; the demos use a BDE or Flex database, and since I don't have either of them installed I can't give you a screen capture. I may have a version installed for D7 or 2007 at my office; I'll check tomorrow, and if so update my answer then.

Related Question