Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как сделать нечто вроде case string of


Автор: Tulipack 2.3.2004, 21:15
Как сделать нечто вроде case string of

тоесть

...
var
str:string;

case str of

'Red' : Inject:=true;
'Green' : inject:=false;
и тд...





ато if then надоел;

Автор: x77 2.3.2004, 21:41
никак. в конструкции case может учавствовать только перечисляемый (ordinal) тип, кроме строковых, а также константы и любые выражение, значение которых известно на этапе компиляции.

в твоём случае, может быть, имеет смысл порыться в StringToColor и изобразить нечто вроде:
Код

 Str := 'cl' + Str;
 case StringToColor (Str) of
   $FF0000:; // clBlue
   $00FF00:; // clGreen
   $0000FF:; // clRed
 end;


в любом случае смысл в том, чтобы преобразовать строковое значение к перечисляемому или гулять по if..then..else.

Автор: Петрович 3.3.2004, 09:08
Вариант 1.
Код
if      str='Red'   then  inject:=true
else if str='Green' then inject:=false
else if str= ...

Вариант 2.
Код
case AnsiIndexText(str,['Red','Green',...]) of
 0 : inject:=true;
 1 : inject:=false;
 ...
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)