Time Ranges and Selection
TTMSFNCDigitalTimePicker uses TTMSFNCDigitalTimeSelector as its drop-down content. The picker generates selectable time values from StartTime, EndTime, TimeInterval, and IntervalUnit.
Configure Time Values
Set the time range and interval before the picker opens. Use TimeFormat to control how each generated value is shown.
TMSFNCDigitalTimePicker1.StartTime := EncodeTime(8, 0, 0, 0);
TMSFNCDigitalTimePicker1.EndTime := EncodeTime(18, 0, 0, 0);
TMSFNCDigitalTimePicker1.IntervalUnit := tsuMinutes;
TMSFNCDigitalTimePicker1.TimeInterval := 15;
TMSFNCDigitalTimePicker1.TimeFormat := 'hh:nn';
TMSFNCDigitalTimePicker1.SelectedTime := EncodeTime(9, 30, 0, 0);
TMSFNCDigitalTimePicker1.OnTimeSelected := TMSFNCDigitalTimePicker1TimeSelected;
Handle Selection
Handle OnTimeSelected when the selected time should update another control or stored setting. The event passes the chosen TTime value.
procedure TForm1.TMSFNCDigitalTimePicker1TimeSelected(Sender: TObject; ATime: TTime);
begin
Caption := FormatDateTime('hh:nn', ATime);
end;
Use the Selector Directly
Use TTMSFNCDigitalTimeSelector directly when the time list should stay visible instead of living in a drop-down editor.
TMSFNCDigitalTimeSelector1.StartTime := EncodeTime(8, 0, 0, 0);
TMSFNCDigitalTimeSelector1.EndTime := EncodeTime(12, 0, 0, 0);
TMSFNCDigitalTimeSelector1.IntervalUnit := tsuMinutes;
TMSFNCDigitalTimeSelector1.TimeInterval := 30;
TMSFNCDigitalTimeSelector1.TimeFormat := 'hh:nn';
TMSFNCDigitalTimeSelector1.SelectedTime := EncodeTime(10, 0, 0, 0);
Combining time configuration, selection handling, and a visible selector
Configure a picker and a selector together so both controls share the same time range and stay in sync when a value is chosen:
procedure TForm1.FormCreate(Sender: TObject);
begin
TTMSFNCDigitalTimePicker1.StartTime := EncodeTime(8, 0, 0, 0);
TTMSFNCDigitalTimePicker1.EndTime := EncodeTime(18, 0, 0, 0);
TTMSFNCDigitalTimePicker1.TimeInterval := 30;
TTMSFNCDigitalTimePicker1.TimeFormat := 'hh:nn';
TTMSFNCDigitalTimeSelector1.StartTime := TTMSFNCDigitalTimePicker1.StartTime;
TTMSFNCDigitalTimeSelector1.EndTime := TTMSFNCDigitalTimePicker1.EndTime;
TTMSFNCDigitalTimeSelector1.TimeInterval := 30;
TTMSFNCDigitalTimeSelector1.TimeFormat := 'hh:nn';
end;
procedure TForm1.TTMSFNCDigitalTimePicker1TimeSelected(Sender: TObject; ATime: TTime);
begin
TTMSFNCDigitalTimeSelector1.SelectedTime := ATime;
end;