【发布时间】:2019-11-15 20:21:59
【问题描述】:
我有一个使用日历的日志,我想将记录信息的日期加粗。我将它们放在一个 3D 数组 TDiaryLog = array[1900..2399] of array[1..12] of array[1..31] of POneDay; 中。但是在OnGetMonthInfo 中,当我必须用粗体构建列表时,它只给我Month,而不是年份。如果我没有年份,我怎么知道我必须在哪一个月度过一天?当十二月在日历中显示为当前月份时,从明年一月开始显示几天!
procedure TMainForm.CalendarGetMonthInfo(Sender: TObject; Month: Cardinal;
var MonthBoldInfo: Cardinal);
begin
end;
【问题讨论】:
-
这是一个 TMonthCalendar 而不是 TCalendar。您可以从当前日期集获取它,但它似乎有时会滞后于导航到的内容。
-
OnGetMonthInfo事件每个月触发 3 次。一个用于当前日期,另外两个用于前后一个月。而且我不知道哪个是当前的... -
所有三个调用的日期看起来都相同,但可以用于与给出的月份进行比较以确定年份。
memo1.Lines.Add(IntToStr(Month)+ ' ' + DateTimeToStr(MonthCalendar1.Date)); -
使用 OnMonthGetBoldInfo 代替,它会传递年份和月份。 D2009有吗?
-
感谢@TLama。不幸的是,看起来如此,如果您需要年份,OnGetMonthInfo 最终是无用的,如果您正在做的事情比文档中的示例更复杂一点,那就是这种情况 - 每个月的第 1 天和第 8 天都加粗!!
标签: delphi calendar delphi-2009