我的程序如何对TDateTimePicker中的更改做出反应?

ple*_*103 6 delphi datetimepicker delphi-2010

我想知道当用户从TDateTimePicker组件中选择特定日期时如何更改标签的标题.

例如:如果在TDateTimePicker组件上标记了06/02/2012,则label1的标题将变为"Hello World",否则如果是其他任何日期则不会发生任何事情.

Dav*_*nan 7

您需要OnChange为日期时间选择器编写事件处理程序.您还需要确保在表单首次显示时运行此事件处理程序:

procedure TForm1.UpdateDateTimeLabel;
var
  SelectedDate, SpecialDate: TDateTime;
begin
  SelectedDate := DateTimePicker1.DateTime;
  SpecialDate := EncodeDate(2012, 2, 16);
  if IsSameDay(SelectedDate, SpecialDate) then
    Label1.Caption := 'Hello World'
  else
    Label1.Caption := '';
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  UpdateDateTimeLabel;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  UpdateDateTimeLabel;
end;
Run Code Online (Sandbox Code Playgroud)

  • 好的,使用DateUtils单元中的IsSameDay有一个更干净的版本. (3认同)
  • `StrToDate`依赖于`ShortDateFormat`和`DateSeparator`.你应该更好地使用`EncodeDate(2012,2,16)` (2认同)