if uppercase(url)=uppercase('提炼') then
  begin
   main_form.n02002Click(Sender);
   cancel:=True;
  end
    else if  uppercase(url)=uppercase('加工') then
      begin
       main_form.n03015Click(Sender);
       cancel:=True;
       end
       else if  uppercase(url)=uppercase('簇水') then
          begin
          main_form.n03027Click(Sender);
          cancel:=True;
          end.
如何把上面的语句转换为case语句,如下列格式:
case .. of
提炼:main_form.n02002Click(Sender);cancel:=True;
加工:....;
簇水:....;
end;希望赐教.

解决方案 »

  1.   

    本帖最后由 windindance 于 2009-05-14 09:06:06 编辑
      

  2.   

    case需要的是4字节数值常量。不过就上面列出来的几个条件,都是两个汉字,因为每个汉字为两个字节,所以两个汉字可以用四个字节的LongWord表示。前提是先判断url是否为4字节。
      

  3.   

    const
      CONST_VALUE_1 =  $B6C1E1CC;  //提炼
      CONST_VALUE_2 =  $A4B9D3BC;  //加工
      CONST_VALUE_3 =  $AECBD8B4;  //簇水
    const
      str: String = '提炼';
      str1: String = '加工';
      str2: String ='簇水';
    var
      strTest: String;
    begin
      strTest := str;
      if Length(strTest) <> 4 then begin
        ShowMessage('其它值');
        exit;
      end;
      case PLongWord(PAnsiChar(strTest))^ of
        CONST_VALUE_1:ShowMessage('提炼');
        CONST_VALUE_2:ShowMessage('加工');
        CONST_VALUE_3:ShowMessage('簇水');
      end;end;
      

  4.   


    type 
      TSdd =(fff,aaa,ff);
    var
      Sdd: TSdd;
    begin
      case Sdd of
        fff:
      end; 
    end;
    不过还是达不到楼主要求,呵呵
      

  5.   

    var
      index: Integer;
      MyList: TStringList;
    begin
      MyList := TStringList.Create;
      MyList.Add('加工');
      MyList.Add('好啊');
      index := MyList.IndexOf(Self.Edit1.Text)
      case Index of
        0: showmessage('加工'); // 加工
         1: showmessage('好啊'); // 好啊
      end;
    end;
    估计其他语言中的编译器应该是按照5楼那样处理的。
      

  6.   

    indexof一次快还是if比较一次快?
      

  7.   

    var
      I : Integer ;
    Begin
      if  uppercase(url)=uppercase('提炼') then I := 1; 
      if  uppercase(url)=uppercase('加工') then I := 2;
      if  uppercase(url)=uppercase('簇水') then I := 3;
      case I of 
        1:...
        2:...
        3:...
      Else
        ... ;
      End;
    end ;