各位:
    我在DATETIMEPICKER日历控件的ONCHANGE事件使用一些语句时,出现一个怪现象,运行时,当在该控件中用键盘直接修改日期时,ONCHANGE只触发一次,而当用鼠标通过下拉的日历中点击增加或减少月份的小三角图标,就发现ONCHANGE会不停地触发,并且导致该控件的月份会不停地增加或减少,不知有什么办法来解决这个问题,还请各位高手指点,谢谢

解决方案 »

  1.   

    那请问如何结合ONCLOSEUP进行处理,能否给出ONCLOSEUP中应有的代码来克服我所说的现象?再请问CHENZHUO,您能否介绍一下,还有什么更好的日历控件,主要是ONCHANGE事件不能出现这种问题我在ONCHANGE事件中主要是控制别一个DATETIMEPICKER控件的最大日期和最小日期,因为出现所上面所说的情况,所以无法实现,请各位再提供好的办法,我相信肯定有人实现过。
      

  2.   

    这是我的ONCHANGE事件的代码
    procedure TFormpz.DateTimePicker1Change(Sender: TObject);
    var year,month,day:word;
    begin
      decodedate(DateTimePicker1.Date,year,month,day);
      DateTimePicker2.MinDate:=DateTimePicker1.Date;
      DateTimePicker2.MaxDate:=EndOfAMonth(Year, Month);
      showmessage(datetostr(DateTimePicker2.Date)); //主要是用来在运行时跟踪的,实际上不需要
    end;
    其中DateTimePicker1为开始日期,DateTimePicker2为终止日期,各位可以试试看,看出现什么样的错误