如何用 case 来对字符串进行判断??
我习惯了VB里的 
select text1.text case
  case "yagas"
  aa.caption="a"
  case "song"
  aa.caption="b"
end select
了,不知道DELPHI里如何实现这个功能??

解决方案 »

  1.   

    var 
        SelectStrings: TStringList; 
      ... 
      
      { Initialization } 
        SelectStrings := TStringList.Create; 
        SelectStrings.Add('First');       (*1*) 
        SelectStrings.Add('Second');      (*2*) 
        SelectStrings.Add('Third');       (*3*) 
      ... 
      
      { Use it } 
      
        case SelectStrings.IndexOf(sPassedString) of  (*4*) 
          0: //First 
            begin 
             <do something> 
            end; 
          1: //Second 
            begin 
             <do something> 
            end; 
          2: //Third 
            begin 
             <do something> 
            end; 
        end; 
      ... 
      { Finalization } 
        SelectStrings.Free; 
      
      上面是大小写敏感的比较,如果要对大小写不敏感则改用下面的比较方法:
      
        SelectStrings.Add(AnsiUpperCase('First'));       (*1*) 
        SelectStrings.Add(AnsiUpperCase('Second'));      (*2*) 
        SelectStrings.Add(AnsiUpperCase('Third'));       (*3*) 
      
        case SelectStrings.IndexOf(AnsiUpperCase(sPassedString)) of  (*4*) 
      
      

  2.   

    同意楼上,PASCAL不支持对STRING的CASE
      

  3.   

    mkiy
     
      请问sPassedString是什么意思
      

  4.   

    sPassedString 就是你要Case 的那个字符串