【发布时间】:2012-02-16 11:06:54
【问题描述】:
我想知道当用户从 TDateTimePicker 组件中选择特定日期时如何更改标签的标题。
比如说: 如果 TDateTimePicker 组件上标记了 06/02/2012,则 label1 的标题将变为“Hello World”,否则如果是任何其他日期,则不会发生任何事情。
【问题讨论】:
标签: delphi delphi-2010 datetimepicker
我想知道当用户从 TDateTimePicker 组件中选择特定日期时如何更改标签的标题。
比如说: 如果 TDateTimePicker 组件上标记了 06/02/2012,则 label1 的标题将变为“Hello World”,否则如果是任何其他日期,则不会发生任何事情。
【问题讨论】:
标签: delphi delphi-2010 datetimepicker
您需要为日期时间选择器编写一个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;
【讨论】:
StrToDate 取决于 ShortDateFormat 和 DateSeparator。你最好使用EncodeDate(2012, 2, 16)
ReplaceTime() 将时间部分设置为0,这实际上与Floor() 剥离它相同。