var  pp:boolean;  // Play_Pause    播放/暂停
procedure TForm2.SpeedButton5Click(Sender: TObject);
begin
 if pp then        //播放
  begin
   speedButton2.Glyph.LoadFromFile('Cpause.bmp');
   speedbutton5.Glyph.LoadFromFile('Bplay.bmp');
   if (datetimepicker1.date>=datetimepicker3.date) or
      ((datetimepicker1.date=datetimepicker3.date)and
     (datetimepicker2.time>datetimepicker4.time))
    then
     begin
      showmessage('日期或时间关系错!');
      timer1.Enabled :=false;
     end
    else
     begin
      timer1.Enabled :=true;
      datetimepicker1.Enabled :=false;
      datetimepicker2.Enabled :=false;
      datetimepicker3.Enabled :=false;
      datetimepicker4.Enabled :=false;
     end;
   pp:=not pp;
  end;
end;

解决方案 »

  1.   

    那几个 datetimepicker 是干什么的啊?
      

  2.   

    if (datetimepicker1.date>=datetimepicker3.date) or
          ((datetimepicker1.date=datetimepicker3.date)and
        (datetimepicker2.time>datetimepicker4.time))
    逻辑有误,or 后面的不会执行。    
      

  3.   

    只要是datatimepicker1.data=datatimepicker3,or后面的就不会执行,应该是
    if (datetimepicker1.date>datetimepicker3.date) or//注意>号
          ((datetimepicker1.date=datetimepicker3.date)and
        (datetimepicker2.time>datetimepicker4.time))
      

  4.   

    if (datetimepicker1.date>=datetimepicker3.date) or
          ((datetimepicker1.date=datetimepicker3.date)and
        (datetimepicker2.time>datetimepicker4.time))应该写成
    if (datetimepicker1.date>datetimepicker3.date) or (datetimepicker1.date = datetimepicker3.date) and (datetimepicker2.teim> datetimepicker4.time)
     
    and的优先级大与or。
        
      

  5.   

    一个  小 建议:
      将  
         showmessage('日期或时间关系错!');
         timer1.Enabled :=false;
      的 先后颠倒一下,呵呵。
        
      

  6.   

    if (datetimepicker1.date>=datetimepicker3.date) or
          ((datetimepicker1.date=datetimepicker3.date)and
        (datetimepicker2.time>datetimepicker4.time))
    这段代码有点问题外,别的看不出,请问你遇到什么问题?