我目前正在使用 Delphi (Professional, Version 7.0; Build 4.453) 创建一个程序。
最初,我想在 TDateTimePicker 下拉日历中加粗一些日期;但我很快发现我做不到 - 所以我试图在 TDateTimePicker 下拉日历(简单,对吗?)
但不是那么快:不知何故,TDateTimePicker 下拉日历总是显示在我的 TMonthCalendar 的顶部。我想让 TMonthCalendar 显示在顶部。
这是我认为我可以做的:
- 将 TMonthCalendar 定位在 TDateTimePicker 下(通常会显示其下拉菜单)
- 在 TDateTimePicker 的 OnDropDown 事件中显示 TMonthCalendar
- 在 TDateTimePicker 的 OnCloseUp 事件中隐藏 TMonthCalendar
这是正在发生的事情:
- 当我单击 TDateTimePicker 上的下拉三角形时,TMonthCalendar 变得可见(耶!)
- 但 TDateTimePicker 下拉日历始终优先(TMonthCalendar 始终位于下拉列表下方)
- 因此,在我在 TDateTimePicker 下拉列表中选择日期之前,我无法对 TMonthCalendar 执行任何操作(我什至看不到粗体日期,因为 TMonthCalendar 在下方)。
这是我尝试过的:
- TDateTimePicker 的 OnDropDown 事件上的 TMonthCalendar.Show(这应该将 Show-ed 的内容带到顶部)。但这无济于事。
- 在 TDateTimePicker 的 OnDropDown 上执行 DateMode: dmDropDown -> DateMode: dmUpDown(从而禁用下拉日历)。但这有问题,因为单击 MonthCalendar 上的任何位置(包括顶部任一侧的更改月份按钮)将使 MonthCalendar 变得不可见(我在 MonthCalendarOnClick 中执行“如果 MonthCalendar.Visible 然后可见:= false”)
我知道解决方案可能很简单,但我想不出办法来做到这一点。到目前为止,我提出的几个想法都不起作用:(所以如果你能想到一种方法来做我想做的事,请帮助我。
先感谢您!:)