【发布时间】:2012-10-06 14:18:26
【问题描述】:
我有一个应用程序,在 Delphi 2007 中构建,表单上有 TDateTimePicker。此日期时间选择器将ShowCheckbox 属性设置为True,它在日期或时间旁边显示一个复选框,每当用户选择日期或日期或时间由代码更改时,就会自动选中该复选框。该复选框的状态也可以由用户手动控制,其状态由Checked属性决定。
以下代码显示了如何在OnChange 事件中确定此复选框的状态:
procedure TForm1.FormCreate(Sender: TObject);
begin
DateTimePicker1.ShowCheckbox := True;
end;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
ShowMessage('Checked: ' + BoolToStr(DateTimePicker1.Checked, True));
end;
以上代码在 Windows XP 上按预期工作,但在 Windows 7 上,Checked 属性始终返回 True,无论该复选框的实际状态如何。
为什么Checked 属性总是返回 True,即使未选中复选框?有没有办法以某种方式解决或解决这个问题?
附:我的应用程序使用 Windows 主题
【问题讨论】:
标签: delphi windows-7 delphi-2007 tdatetimepicker