TcxDateEdit 允许设置 MinDate
和 MaxDate
的属性。但是我找不到一个键可以使控件自动验证输入的日期并确保日期在指定的范围内。
例如:
MinDate := EncodeDate(1900, 1, 1);
MaxDate := EncodeDate(2100, 1, 1);
当我输入日期 1.1.1111
时,它会抛出错误,而不是将其放入范围 01.01.1900 .. 01.01.2100
最佳答案
以下代码位于 Properties.OnValidate
做的工作:
procedure TForm.deDatePropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
ed: TcxDateEdit; //So we can use single handler for different controls
dt: TDateTime;
begin
ed := TcxDateEdit(Sender);
dt := StrToDateDef(DisplayValue, ed.Properties.MinDate);
if not InRange(dt, ed.Properties.MinDate, ed.Properties.MaxDate) then
begin
DisplayValue := EnsureRange(dt, ed.Properties.MinDate, ed.Properties.MaxDate);
ed.EditValue := DisplayValue;
end;
Error := False;
ErrorText := '';
end;
关于delphi - 如何确保输入到 TcxDateEdit 的日期在 MinDate/MaxDate 范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21872687/