procedure TDBDateTimePicker.DataChange(Sender: TObject);
var ADateTime: TDateTime; //rkmod
begin
if (FChangingCount = 0) then begin
Inc(FDataChangeCount);
try
if Assigned(FDataLink.Field) and not FDataLink.Field.IsNull then begin
if FISOMode and (FDataLink.Field.DataType = ftString) then //rkmod
ADateTime := ISOToDateTime(FDataLink.Field.AsString)
else
ADateTime := FDataLink.Field.AsDateTime;
// Using the SetTheDateJumpMinMax procedure, instead of property
SetDateTimeJumpMinMax(ADateTime); // assignment allows
// this control to display dates from database whose value falls
// outside of MinDate and MaxDate interval.
// Note that user still cannot enter such values in the control.
end else
DateTime := NullDate;
finally
Dec(FDataChangeCount);
end;
end;
end;
//...
procedure TDBDateTimePicker.UpdateData(Sender: TObject);
begin
if Assigned(FDataLink.Field) then begin
if DateIsNull then
FDataLink.Field.AsVariant := Null
else begin
if FISOMode and (FDataLink.Field.DataType = ftString) then //rkmod
FDataLink.Field.AsString := DateTimeToISO(DateTime)
else
FDataLink.Field.AsDateTime := DateTime;
end;
end;
end;