测试程序如下:
var
  dtpdate1,dtpdate2:string;
{$R *.dfm}procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  dtpdate1:=datetostr(DateTimePicker1.Date) ;
end;procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
  dtpdate2:=datetostr(DateTimePicker2.Date) ;
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if   dtpdate1=''  then   //未选时间
    dtpdate1:=formatdatetime('yyyy-mm-dd',now);
  if   dtpdate2=''  then    //未选时间
      dtpdate2:=formatdatetime('yyyy-mm-dd',now);  if dtpdate1>dtpdate2 then
  begin
    showmessage('开始时间过大,不合法,请选择合适的开始时间  ');
    exit;
  end
  else
    showmessage('通过测试      ');
end;当我在DateTimePicker1中输入2005年的任一天,而DateTimePicker2=now时,总是提示“开始时间过大”即使是输入1号也是如此,请大家指导一下。大家也可测试一下以上的程序。

解决方案 »

  1.   

    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
    //dtpdate1:=datetostr(DateTimePicker1.Date) ;
      dtpdate1:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date) ;
    end;procedure TForm1.DateTimePicker2Change(Sender: TObject);
    begin
    //dtpdate2:=datetostr(DateTimePicker2.Date) ;
      dtpdate2:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date) ;
    end;
    ```
    ```
    ```
    //if dtpdate1>dtpdate2 then
      if StrToDate(dtdate1)>StrToDate(dtDate2) then
      

  2.   

    补充一下,当进行测试的时候不要按动DateTimePicker2的选择框,让它=now的日期。