网上很多文章说到这个问题,但是按他们说的,都只可以修改时间或者日期。
UserInput事件也不能解决,好像触发条件有问题,并不是修改了必定触发。
改源码太复杂,我是通过OnChange事件来处理,代码如下:
procedure TmainForm.dtpStartTimeChange(Sender: TObject);
var
len:Integer;
buf:PChar;
s:string;
t:TDateTime;
begin
len:=(Sender as TDateTimePicker).GetTextLen + 1;
SetLength(s,len);
buf:=PChar(s);
(Sender as TDateTimePicker).GetTextBuf(buf,len);
if TryStrToDateTime(s,t) then
begin
if t<>(Sender as TDateTimePicker).DateTime then
(sender as TDateTimePicker).DateTime:=t;
end;
end;