打错了,从第一位开始‘逐位’比较
例如'a'<'b'是true
'c'<'b'是false
'abc'<'abd'呢?true

解决方案 »

  1.   

    可以直接比较.如:
    if edit1.text<edit2.text then
    begin
    ...
    end
    else
    begin
    ...
    end;
      

  2.   

    空格的ASCII码为90,3的ASCII为53 所以'3'>=' ',为False;
      

  3.   

    这个是pascal幕后操作和实现的:
    从第一位开始‘逐位’比较,找到可以比较出的大小的位就返回。
    例如'a'<'b'是true
    'c'<'b'是false
    'abc'<'abd'呢?true,因为前两位相同,第三位c<d
    那么'acd'<'abd'呢?a=a继续c<b判断出来了c<b是false返回false!
      

  4.   

    但是我比较了'3'>=' ',为True.
      

  5.   

    不是。我比较'3'>' '和'3'>''了,都为true
      

  6.   

    uses SysUtils;
    procedure TForm1.Button1Click(Sender: TObject);var
      Msg: string;
      CompResult: Integer;
    begin
      Msg := Edit1.Text;
      CompResult := StrComp(PChar(Edit1.Text), PChar(Edit2.Text));
      if CompResult < 0 then
        Msg := Msg + ' is less than '
      else if CompResult > 0 then
        Msg := Msg + ' is greater than '
      else
        Msg := Msg + ' is equal to '
      Msg := Msg + Edit2.Text;
      ShowMessage(Msg);
    end;