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;
上記のコードはWindowsXPで期待どおりに機能しますが、Windows 7では、Checkedチェックボックスの実際の状態に関係なく、プロパティは常にTrueを返します。
Checkedチェックボックスがオフの場合でも、プロパティが常にTrueを返すのはなぜですか?どういうわけかこれを修正または回避する方法はありますか?
PS私のアプリケーションはWindowsテーマを使用しています