Al Day events

Is there a way to encode a planner item as being 'all day', i.e. without specific start/end times? 



If you refer here to the non DB-aware Planner, to make an item appear as all-day event in the header of the Planner, just set PlannerItem.InHeader := true. It will be displayed in the header irrespective of the time.

Hi Bruno,


Thanks for the info but it does not really work. I have the days in the rows and each column is for a different person. Putting an item in the header means it is only related to a person, not a date (or range of dates). What I want is an item that behaves like the ordinary items but does not have specific times attached to it. At the moment I am setting the times to 00:00 to 23:59 and then doing special handling based on an item having those times. It works but it seems to me that All Day is such a common feature of a calendar that it should be handled automatically.

(yes, I am using the non DB version).

When you say you have days in Rows, I assume your Planner.Mode.PlannerType is set to plDayPeriod? If so, you should not need to specify a time to add an all-day item, just a start & end date is sufficient.

That is correct, I am using plDayPeriod. 


The point is, the start/end of the item is defined as TDateTime so it always has a time component. If you set the start to just the day, the time defaults to 0 = midnight. If you then set the end date to the same day (a one day event) and leave the time also undefined, that will also be 0 = midnight so the event will actually start and end at the same moment - midnight of the start day, though (in plDayperiod mode) the planner will draw the event over the full day. If you set the end date to midnight of the next day (i.e. define the event from midnight to the next midnight), the planner will draw the item over the whole of the start and end day - appearing as 2 days.