我通过在datetimepicker.onchange()事件中写 if datetimepicker.date>date then showmessage('不能导入未来日期')来控制用户不能输入 今天以后的日期,但是在运行该段程序时会进入一死循环,日期不断的往后面跳,只能在热启动中关闭此程序才能退出,请问为什么?

解决方案 »

  1.   

    你可以在datetimepicker的OnExit事件中写如下代码:
    if datetimepicker.date>date then 
    begin
    showmessage('不能导入未来日期');
    datetimepicker.setfocus;
    end;
      

  2.   

    我在C++ BUILD里面也同样出现过这样的问题。请问这是开发工具本身的问题吗?
      

  3.   

    我也有相似问题,不能查询时间,请教
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Form1: TForm1;
      asql:string;
    begin
      asql:='select * from 安装记录表.db where';
      if CheckBox1.Checked then  asql:=asql+'  (安装日期> :d1) and (安装日期< :d2)';
      if asql<>'' then
      begin
      with query1 do
      begin
      close;
      sql.text:=asql;
      if CheckBox1.Checked  then  begin
      query1.Params[0].AsDateTime:=DateTimePicker1.Date;
      query1.Params[1].AsDateTime:=DateTimePicker2.Date;
      end;
      datasource1.DataSet :=query1;
      query1.Open;
      end;
    end;
    end;end.
      

  4.   

    datetimepicker的本来问题,好像是,我也遇到过
      

  5.   

    按 pilicat(delphi迷) 说得方法可以实现
      

  6.   

    我在form.create()中写入datetimepicker.date:=date,如果照pilicat(delphi迷)的方法,当用户错误的打开窗口,想退出来时,会出现'不能导入未来日期'的提示信息,请问该如何做?
      

  7.   

    有的机子上用datatostr(date)转换出来系统日期是'2003-04-05',而有的机子上的结果是'04/05/03',我使用strtodate('04/05/03')在我自己的机子上运行是正常的,但在系统日期是'2003-04-05'格式的机子上运行却出错,说是无效的日期,请问该如何做?
      

  8.   

    不能在onchange中做校验,
    要在onexit中校验