- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Delphi7,我想将 TDateTimePicker
控件的某些天加粗。
我读到,它最初是 TMonthCalendar
的后代,因此应该是可能的。
我还找到了一些示例代码,但它是用 C# 编写的: http://social.msdn.microsoft.com/Forums/en/winforms/thread/03527023-694d-41ab-bffb-18c59fca1fda
请注意,我不想使用任何第三方 DateTimePicker
控件,我想继续使用标准控件。
最佳答案
你既对又错:-)
参见: http://www.experts-exchange.com/Programming/System/Windows__Programming/MFC/Q_23927552.html
你说得对,XP下不能设置BoldDays。但你错了,因为在 Vista/Win7 下你可以!
修改后的代码如下:
procedure TForm1.DateTimePicker1DropDown(Sender: TObject);
const
DTM_GETMCSTYLE = (DTM_FIRST + 12);
DTM_SETMCSTYLE = (DTM_FIRST + 11);
MCS_NOTRAILINGDATES = $0040;
MCS_SHORTDAYSOFWEEK = $0080;
MCS_NOSELCHANGEONNAV = $0100;
var
monthCalHandle: THandle;
boldDates: array[0..2] of integer;
style, prevstyle: LResult;
begin
style := SendMessage(DateTimePicker1.Handle, DTM_GETMCSTYLE, 0, 0);
style := style or MCS_DAYSTATE; //or MCS_NOSELCHANGEONNAV or MCS_WEEKNUMBERS;
prevstyle := SendMessage(DateTimePicker1.Handle, DTM_SETMCSTYLE, 0, style);
monthCalHandle := SendMessage(dateTimePicker1.Handle, DTM_GETMONTHCAL, 0, 0);
boldDates[0]:=$5a5a5a;
boldDates[1]:=$5a5a5a;
boldDates[2]:=$5a5a5a;
SendMessage(monthCalHandle, MCM_SETDAYSTATE, 3, integer(@boldDates));
end;
注意:请务必将 vista list 添加到文件中,否则它将无法工作!
这些常量来自更新后的 commctrl.h 文件,可在此处找到: http://www.koders.com/cpp/fid6A6537D52B537D0920D7A760D2073F7B65ADE310.aspx?s=WM_CAP_DRIVER_CONNECT
感谢您的帮助,您引导我找到了解决方案! :-)
关于delphi - TDateTimePicker 的 BoldDays?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223237/
如果我设置 TDateTimePicker 组件(Delphi XE10)的属性“格式”,例如。 ddd d/m/yyyy 然后显示 Tue 14/47/2016 !!日期 31/12/2016 为
TDateTime 选择器是一个组合框,其中的下拉列表被日历替换。我使用 XE2 VCL 样式,更改样式不会影响 TDateTimePicker 颜色和字体颜色。我已经用这个 question 更改了
这是一个来自 Delphi XE7 的 DatetTimePicker 的奇怪问题的简单问题。 我有这个代码... procedure TForm1.Button1Click(Sender: TObj
我发现将 TDateTimePicker 的 MaxDate 设置为非零值后,无法将其恢复为零(禁用它)。我的意思是,MaxDate 读数为零,但最大范围对于之前设置的值仍然有效。通过下拉日历并检查最
如何禁止 TDateTimePicker 允许选择超出系统日期和时间的日期?例如,如果我的系统日期是 2012 年 11 月 6 日,我将无法选择 2012 年 11 月 6 日之后的日期。 此外,我
我有一个内置 SQL 的 SP,它有 2 个参数,一个是年,另一个是月。 在 delphi 中,我在框架上添加了一个 TDateTimePicker,以便让用户选择月份和年份。 如何从 TDateTi
我正在使用 TDateTimePicker 来允许用户选择一天(手动或通过单击按钮前进或后退一天)。然后,用户将看到该特定日期的日志条目。 该控件效果很好,但我想将用户限制在 [OLDEST-DAY-
我在 D7 应用程序上使用具有以下属性的 TDateTimePicker: Format = 'MMM-yyyy' DateMode = dmUpDown 当我尝试使用 dt1.DateTime :=
我想知道当用户从 TDateTimePicker 组件中选择特定日期时如何更改标签的标题。 举个例子:如果 TDateTimePicker 组件上标记了 06/02/2012,则 label1 的标题
如何在 Delphi 2010 中显示“空”TDateTimePicker(即隐藏日期的显示,以便控件显示为空)。我知道设置显示纪元的格式的技巧,但是在 Windows 7 上运行 Delphi 20
我在 Delphi 6 表单上有一个 DateTimePicker,默认日期为 1899 年 12 月 30 日。我希望用户能够单击它或打开下拉日历并选择当前日期。使用 OnClick 过程: Dat
我已将标准 VCL TDateTimePicker - MaxDate 属性设置为 Date - 例如 DTPicker.MaxDate := Date; 但是,有一个问题。如果我现在将日期设置为当前
我正在使用 Delphi7,我想将 TDateTimePicker 控件的某些天加粗。 我读到,它最初是 TMonthCalendar 的后代,因此应该是可能的。 我还找到了一些示例代码,但它是用 C
我真的很困惑。我想要做的(看起来很简单)是在 TDateTimePicker 中显示日期+时间,并集成日历,并能够在其值更改后读取它。 我想使用 dd/MM/yyyy hh:mm 格式。 由于 TDa
我想将日历系统(如公历)实现为 TDateTimePicker。 1) 我想知道我可以扩展 TDateTimePicker 类以使用其视觉功能,但更改其日历计算系统以匹配我的日历系统吗? 2)如果是这
当用户单击 DateTimePicker 并设置为下拉日历时,我希望以某种方式突出显示各种日期(通过我创建的代码选择)——彩色背景、粗体字体、彩色字体,这并不重要。我只想标记某些日期。 ...我该怎么
我正在编写一个自定义模块来使用专有软件。 (该软件已经停产,我没有它的源代码。)我的模块将作为一个单独的进程运行。它的目标是通过这个专有软件自动化操作。为此,我需要能够在 TDateTimePicke
我的表单上有一个带有 Kind=dtkDate 的 TDateTimePicker。 当表格打开时,我做 TDateTimePicker.date := Date 我有一个 var lStartDay
如果这个问题听起来有点愚蠢,我深表歉意,但是使用 XE2,我可以看到 TDateTimePicker 的 OnDblClick 事件似乎从事件列表中丢失了。真的是这样吗?这是我的操作方法: 我启动一个
我的一个应用程序的一些用户遇到了一个奇怪的问题,在启动时他们得到了 datitimepickers 的异常,其预定的最小/最大日期设置为 1950 年 1 月 1 日 - 2050 年 12 月 31
我是一名优秀的程序员,十分优秀!