2014-02-19 71 views
2

TcxDateEdit允許設置MinDateMaxDate的屬性。但是,我找不到一個可以使控件自動驗證輸入日期並確保日期在指定範圍內的鍵。如何確保輸入TcxDateEdit的日期在MinDate/MaxDate內?

例如:

MinDate := EncodeDate(1900, 1, 1); 
MaxDate := EncodeDate(2100, 1, 1); 

當我輸入一個日期1.1.1111它拋出,而不是使其適應範圍01.01.1900 .. 01.01.2100

回答

2

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; 
相關問題