Usar case com string

Muitas vezes nos deparamos com a necessidade de usarmos o comando "CASE" mas ele não funciona com string. Aqui vou mostrar uma forma de se fazer isso.

Adicione:
uses StrUtils


Depois é so fazer assim:
case AnsiIndexStr(UpperCase(palavra), ['OPCAO1', 'OPCAO2','OPCAO3']) of
  0 : showmessage('Opcao1');
  1 : showmessage('Opcao2');
  2 : showmessage('Opcao3');
end;
*Note que poderia ser usado o AnsiUpperCase em vez do UpperCase, se no caso a "palavra pode ter caracter com acentuação, ou caracter especial.

======================================
Opinião do autor. - Eu particularmente evito usar if encadeado, - pior para entender o código - pior para debugar - ocupa muito mais espaço
=====================================
veja na pratica a diferença
Case com string:
  Logo no inicio do artigo mostramos um exemplo bem simples usando o Case;

If Encadeado:
if palavra = 'Opcao1' then
begin
...
end
else
begin
  if palavra = 'Opcao2' then
  begin
  ...
  end
  else
  begin
    if palavra = 'Opcao3' then
    begin
    ...
    end
  end
end;
Gastamos 19 linha, vira uma verdadeira "Tripona"
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados