我有一个应用程序,在 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?有没有办法以某种方式解决或解决这个问题?
PS 我的应用程序使用 Windows 主题