2016-06-30 14 views
2

プロパティがdtkTimeに設定されている場合、DelphiでDatetimepickerコンポーネントの最大時間と最小時間の値を設定する方法があるかどうかは知りませんか?Delphiのdatetimepickerコンポーネントの最小時間と最大時間の設定

+0

ハズレを、私はこのことを考えていませんコントロールはそのような機能を提供します –

+0

いいえ、そうではありません。 min/max * times *はサポートしていますが、min/max * times *はサポートしていません。 'OnChange'と' OnUserInput'イベントを使用して、必要に応じて入力された時間を調整する必要があります。 –

答えて

6

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)); 
関連する問題