Usar case com string

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (12)  (0)

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"
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?