桌面上放两个datetimepicker控件  date1 date2
它们的onchange事件同时指向
procedure Tfrm.date1Change(Sender: TObject);
begin
  if date2.Date <date1.Date then
    date2.Date:=date1.Date;
end;当date2比date1小的时候并不会将date1的值赋值给date2。。
而且change时间执行了两次,为什么??

解决方案 »

  1.   

    莫非是这样?
      在change事件里不能改变本身的值?
      

  2.   

    这样凑合
    procedure TForm1.date2Exit(Sender: TObject);
    begin
       if date2.Date <date1.Date then
        date2.Date:=date1.Date;
    end;procedure TForm1.date1Change(Sender: TObject);
    begin
    if date2.Date <date1.Date then
        date2.Date:=date1.Date;
    end;
      

  3.   

    我试了放两个Edit就没这种问题,谁知道是为什么吗?
      

  4.   

    接分了,已调试!!
    procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
    begin
       if self.DateTimePicker1.Date <self.DateTimePicker2.Date  then
        self.DateTimePicker1.Date:=self.DateTimePicker2.Date;
    end;
      

  5.   

    帮助:ONChange Occurs when a date or time is entered.
    因为是entered时才发生,刚试了,将datamode属性改为mdupdown,输入改变就符合你的要求了。