string 不是有序的
他没有pre和next。

解决方案 »

  1.   

    up!up!
    可以把要用的字符串存在数组中
    然后再用数组下标作为case变量!
      

  2.   

    delphi中的string不是简单数据类型,不能对其进行CASE操作,呵呵
      

  3.   

    case操作是不可以用string类型的,
    用if ... else ... if ... else ...代替。
      

  4.   

    type ExeFileType = (etExe, etCom);var
      ef: ExeFileType;case ef of
      etExe: ShowMessage('Exe File');
      etCom: ShowMessage('Com File');
    end;
      

  5.   

    case of 不能用 string 可用 int 或 集合。。type my-flag =(Flag1,Flag2)
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vFileName: TFileName;
    begin
      vFileName := Edit1.Text;
      case Pos(',' + ExtractFileExt(LowerCase(vFileName)) + ',',
        ',.exe,.com,.bmp,.jpg,.txt,.bat,') of
       //1234567890123456789012345
        01: ShowMessage('exe file!');
        06: ShowMessage('com file!');
        11: ShowMessage('bmp file!');
        //....
      end;
    end;
      

  7.   

    呵呵,为什么delphi在这里如此不方便呢?但是我们也只能适应这种方式。这个朋友的比较好:type ExeFileType = (etExe, etCom);var
      ef: ExeFileType;case ef of
      etExe: ShowMessage('Exe File');
      etCom: ShowMessage('Com File');
    end;