2
プロパティがdtkTime
に設定されている場合、DelphiでDatetimepickerコンポーネントの最大時間と最小時間の値を設定する方法があるかどうかは知りませんか?Delphiのdatetimepickerコンポーネントの最小時間と最大時間の設定
プロパティがdtkTime
に設定されている場合、DelphiでDatetimepickerコンポーネントの最大時間と最小時間の値を設定する方法があるかどうかは知りませんか?Delphiのdatetimepickerコンポーネントの最小時間と最大時間の設定
VCLクラスTDateTimePicker
は、時間範囲の値の設定を意図的に防止するようです。しかし、根底にある共通コントロールがサポートしている、少なくとも私は成功を収めて次のコードを試してみたのWindows 7で:
uses
System.DateUtils,
Winapi.CommCtrl,
Vcl.ComCtrls;
procedure SetTimeRange(CommonCalendar: TCommonCalendar; MinTime, MaxTime: TTime);
var
STA: TSystemTimeRangeArray;
begin
DateTimeToSystemTime(TimeOf(MinTime), STA[0]);
DateTimeToSystemTime(TimeOf(MaxTime), STA[1]);
Win32Check(DateTime_SetRange(CommonCalendar.Handle, GDTR_MIN or GDTR_MAX, @STA));
end;
使用例:
SetTimeRange(DateTimePicker1, EncodeTime(18, 0, 0, 0), EncodeTime(19, 0, 0, 0));
ハズレを、私はこのことを考えていませんコントロールはそのような機能を提供します –
いいえ、そうではありません。 min/max * times *はサポートしていますが、min/max * times *はサポートしていません。 'OnChange'と' OnUserInput'イベントを使用して、必要に応じて入力された時間を調整する必要があります。 –