日历控件输入年份
delphi自带的日历控件(TMonthCalendar)怎么能够手动输入年份?
也就是在下图使用键盘输入,而不是通过点击updown。
[解决办法]
TMonthCalendar不带这个功能,只能手工改造。你这个思路就可行,放一个编辑框上去,设置好位置,输入后将TMonthCalendar的日期的年份改为这个就可以了。
[解决办法]
可以自己定义一个,或者用第三方的吧
[解决办法]
只有自己重载一个,或者找第三方控件了。
[解决办法]
加个Timer,然后在事件中加入以下代码可以使得年份可以编辑:
procedure TForm1.Timer1Timer(Sender: TObject);
var
hEdit: THandle;
begin
hEdit := FindWindowEx(MonthCalendar1.Handle, 0, 'edit', nil);
if hEdit <> 0 then
SendMessage(hEdit, EM_SETREADONLY, 0, 0);
end;
[解决办法]
上面的代码可以事件Edit的地方可以输入了,但还要加个截获程式回车键的功能,然后在截获后对年份控件处理。
比如在edit输入了2011,接收到回车键后加一行代码:MonthCalendar1.DateTime := 根据Edit的年份处理好的时间