如何判断
MaskEdit1.Text 小于 edit1.Text的值 edit1.text直接获取的是系统时间 :
2008-11-25 11:08:56maskedit1的editmask属性为:
!9999/99/00  99:99:99;1;怎么才能判断MaskEdit1.Text 小于 edit1.Text的值 谢谢 

解决方案 »

  1.   


    MaskEdit1.Text < edit1.Text
    直接这样写出错 郁闷  
    求教
      

  2.   

    Text 只能等于或者不等于。当然出错了。
    建议你固定格式,然后转为integer再来比较。
      

  3.   

    这样吧
    strtodatetime(MaskEdit1.Text)<strtodatetime(edit1.Text )
      

  4.   

    strtodatetime(MaskEdit1.Text)<strtodatetime(edit1.Text)
      

  5.   

    转换成datetime形式再进行比较
      

  6.   

    首先你的edit的時間格式就和maskedit不同,在formcreate事件中先改時間格式
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      edit1.Text:=formatdatetime('yyyy/mm/dd hh:ss:mm',Now());
    end;
    再按他們說的去做就好了
    if strtodatetime(edit1.Text)<strtodatetime(maskedit1.Text) then
      showmessage('<')
    else if strtodatetime(edit1.Text)>strtodatetime(maskedit1.Text) then
      showmessage('>')
    else
      showmessage('=');
    最好上面代碼最好在try..except中去做,或者說你得判断是否輸入的是時間,減少不必要的异常
      

  7.   

    不好意思,try..except的我沒查到,倒是看到了strtodatetime是执行TryStrToDateTime,返回true/false,判断转换是否成功,代碼改了改,自己看看吧,就是這意思,如下:
    var
      t:TDateTime;
    begin
      if not TryStrToDateTime(maskedit1.Text,t) then
      begin
        showmessage('wrong');
        exit;
      end;
      if strtodatetime(edit1.Text)<t then
          showmessage('<')
      else if strtodatetime(edit1.Text)>t then
          showmessage('>')
      else
          showmessage('=');
    end;