Table of Contents

Time Ranges and Selection

TTMSFNCDigitalTimePicker uses TTMSFNCDigitalTimeSelector as its drop-down content. The picker generates selectable time values from StartTime, EndTime, TimeInterval, and IntervalUnit.

Digital time picker drop-down

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;

See Also