delphi cxDateNavigator 防止日期小于今天
delphi cxDateNavigator prevent date less than today
我试图阻止 select在 cxDateNavigator 中出现小于今天的日期。
但是,当我 select 今天的日期时,我触发了消息。我在这里错过了什么?
procedure TForm9.cxDateNavigator1SelectionChanged(Sender: TObject; const AStart,
AFinish: TDateTime);
begin
if cxDateNavigator1.Date <Now then
showmessage('yo.');
end;
我不知道 cxDateNavigator 控件,但我认为问题在于“现在”returns 日期和时间。 TDateTime 变量在内部是一个带小数的数字,“日期”部分存储为整数,“时间”部分存储为小数。所以你应该切断 Time/decimals,所以你只比较日期部分而不比较时间。
像这样:
procedure TForm9.cxDateNavigator1SelectionChanged(Sender: TObject; const AStart, AFinish: TDateTime);
begin
if Trunc(cxDateNavigator1.Date) < Trunc(Now) then
showmessage('yo.');
end;
我试图阻止 select在 cxDateNavigator 中出现小于今天的日期。 但是,当我 select 今天的日期时,我触发了消息。我在这里错过了什么?
procedure TForm9.cxDateNavigator1SelectionChanged(Sender: TObject; const AStart,
AFinish: TDateTime);
begin
if cxDateNavigator1.Date <Now then
showmessage('yo.');
end;
我不知道 cxDateNavigator 控件,但我认为问题在于“现在”returns 日期和时间。 TDateTime 变量在内部是一个带小数的数字,“日期”部分存储为整数,“时间”部分存储为小数。所以你应该切断 Time/decimals,所以你只比较日期部分而不比较时间。 像这样:
procedure TForm9.cxDateNavigator1SelectionChanged(Sender: TObject; const AStart, AFinish: TDateTime);
begin
if Trunc(cxDateNavigator1.Date) < Trunc(Now) then
showmessage('yo.');
end;