Case statement that *accepts* string values (Views: 710)
Problem/Question/Abstract: You've probably tried providing a Case statement with string type selector expression, to find out that it only takes ordinal types (which string is not). The following function enables you to use the Case statement with string type variables: Answer: function StringToCaseSelect (Selector : string; CaseList: array of string): Integer; var cnt: integer; begin Result:=-1; for cnt:=0 to Length(CaseList)-1 do begin if CompareText(Selector, CaseList[cnt]) = 0 then begin Result:=cnt; Break; end; end; end; { Usage: case StringToCaseSelect('Delphi', ['About','Borland','Delphi']) of 0:ShowMessage('You''ve picked About') ; 1:ShowMessage('You''ve picked Borland') ; 2:ShowMessage('You''ve picked Delphi') ; end; } |