我目前使用Delphi(专业版,7.0;建立4.453)创建一个程序。德尔福TDateTime与TMonthCalendar大胆的日子
最初,我想在TDateTimePicker下拉日历中加入一些日期;但我很快发现我不能 - 所以我试图在TDateTimePicker下拉日历的顶部重叠一个TMonthCalendar(可以用它来做大胆的日期)(简单吧?)
但是没有那么快:不知何故,TDateTimePicker下拉日历总是显示在我的TMonthCalendar的顶部。我希望将TMonthCalendar显示在顶部。
这是我想我可以做的:
- 位置TMonthCalendar的的TDateTimePicker下(其中其下拉列表通常会显示)
- 使可见TMonthCalendar上的TDateTimePicker的OnDropDown事件
- 隐藏TMonthCalendar在TDateTimePicker中的OnCloseUp事件
这里是正在发生的事情:
- 当我点击上TDateTimePicker中的下拉三角,在TMonthCalendar变得可见(耶!)
- 不过的TDateTimePicker下拉日历始终把先例(TMonthCalendar总是下拉下)
- 所以我可以”不要在TMonthCalendar中做任何事情,除非我在TDateTimePicker下拉列表中选择了一个日期(因为TMonthCalendar在下面,我甚至无法看到加粗的日期)。
这里是我试过:
- TMonthCalendar.Show上TDateTimePicker的的OnDropDown事件(这能为我们带来什么是显示-ED顶部)。但是这没有任何作用。
- 执行DateMode:dmDropDown - > DateMode:TDateTimePicker的OnDropDown上的dmUpDown(因此禁用下拉日历)。但是由于点击MonthCalendar上的任何地方(包括顶部任一侧的变化月份按钮)都会使MonthCalendar变得不可见(我在MonthCalendarOnClick中做了“如果MonthCalendar.Visible然后可见:= false”)
我知道解决方案可能很简单,但我想不出一种方法来做到这一点。到目前为止,我提出的几个想法是不工作:( 所以,如果你能想到一种方法来做我想做的事,请帮我。
谢谢你!:)
不要走这条路。 'TMonthCalendar'是Win32月份日历控件的一个简单封装。 'TDateTimePicker'是Win32日期时间选择器控件的一个简单包装,它在需要时在内部创建一个月份日历控件。有可能(而不是全部很难)访问该内部月历控件,并随心所欲地做任何事情,包括使用TMonthCalendar所能做的所有事情。只要看一下'TMonthCalendar'是怎么做的,然后为你自己的控制做同样的事情。 (我会举一个例子,但我不在系统上,现在我可以测试它。) – hvd
这种方法永远不会产生好的结果 –
可能的重复,['你如何以编程方式在Delphi中标记日期TDateTimePicker的日历?'](http://stackoverflow.com/q/7210565/576719)。 –