请问,有奶位大虾知道,怎样控制 DateTimePicker1 在输入或修改
日期时,不能超出最大日期和最小日期。
  
  请给予明示,谢谢

解决方案 »

  1.   

    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
      if FormatDateTime('YYYY-MM-DD', DateTimePicker1.Date) > '2004-01-01' then
        DateTimePicker1.Date := Date;
    end;OnChange事件。
      

  2.   

    可設置
    DateTimePicker1.MaxDate
    DateTimePicker1.MinDate
      

  3.   

    DateTimePicker1.MaxDate:=strtodate('2004-01-01');
    DateTimePicker1.MinDate:=StrtoDate(''2000-01-01');
      

  4.   

    哎,又被aiirii(ari) 抢先了
      

  5.   

    当然有办法了,就是太麻烦了,告诉你一下思路吧,在KeyPress事件中,就取得了刚才用户输入的键值,然后判断一下,当前用户选择修改的是哪个部分,年还是月,还是日,然后拼装一下,看看将成为新的日期是不是超过了控制的范围就行了。
      

  6.   

    DateTimePicker1.MaxDate
    DateTimePicker1.MinDate
    是它的父类的属性所以他也可以用的
      

  7.   

    設直它的MaxDate為最大日期.
    設直它的MinDate為最小日期.
      

  8.   

    晕,我告诉你吧,你的要求是可以达到的,就是在keypress里边处理,最大的难度是在怎么知道当前的选择是年还是月还是日,有一个办法,就是用canvas把那个控件所在的位置图像保存到bmp中,然后用scanline去判断一下位置(因为选中的时候颜色是不一样的),再接着把读取到的key值重新平装一下判断一下,行就什么也不做,不行就要把可以设置为#0。