A sentença CASE só pode ser usada com tipos de dados ordinais (integer, 
char, byte, boolean) e tipos enumerados. Se quiser usar com string, sugiro 
fazer uso da função AnsiIndexStr().

Exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  lBusca: String;
  lStrings: array of String;
begin
  lBusca := 'DA';
  SetLength(lStrings, 4);
  lStrings[0] := 'RUBEM';
  lStrings[1] := 'ROCHA';
  case AnsiIndexStr(lBusca, lStrings) of
    0: ShowMessage('Achou a palavra');
    -1: ShowMessage('Não achou a palavra');
  end;
end;


Sds.
>From: "Gabriel Herdt" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: delphi-br@yahoogrupos.com.br
>Subject: [delphi-br] Re: O Comando Case
>Date: Tue, 13 Feb 2007 10:42:00 -0000
>
>Jorge, obrigado pela ajuda. Mas esse não eu o caso eu me refiro ao
>comando CASE OF do delphi(2005) não ao CASE WHEN de Select.
>Oque eu gostaria de fazer é o seguinte:
>case trim(UpperCase(sNome)) of 'Gabriel':
>Begin
>…
>…
>End;
>`Gustavo': Begin
>…
>End;
>
> > > Pessoal o comando case não aceita comparação de strings?
> > > Alguma alternativa? Que não seja if if if?
> > > case trim(UpperCase(sTabela)) of 'FCHISTOR': Begin
> > > Como vai ter muitas comparações eu não gostaria que passasse em
> > > todas
> > > s opções como no if.
> > > qual a alternativa?
>
>
>
>--- Em delphi-br@yahoogrupos.com.br, "Jorge Ericsson"
><[EMAIL PROTECTED]> escreveu
> >
> > Gabriel eu não sei qual o banco que vc utiliza, mas tente a
>condição abaixo
> > caso esteje trabalhando com o ORACLE.
> >
> > SELECT  CASE TRIM(TO_CHAR(TO_DATE(TO_CHAR(vCONT) || '/' ||
>vMES_INPUT || '/'
> > || vANO_INPUT,'dd-mm-yyyy')  , 'Day'))
> >                 WHEN 'Segunda-Feira' then 'Segunda'
> >                 WHEN 'Terça-Feira' then 'Terça'
> >                 WHEN 'Quarta-Feira' then 'Quarta'
> >                 WHEN 'Quinta-Feira' then 'Quinta'
> >                 WHEN 'Sexta-Feira' then 'Sexta'
> >                 WHEN 'Sábado' then 'Sábado'
> >                 WHEN 'Domingo' then 'Domingo'
> >               ELSE 'NENHUM'
> >               END INTO vDIA_SEMANA FROM DUAL;
> >
> > []´s
>
> >
> > Em 12/02/07, Gabriel Herdt <[EMAIL PROTECTED]> escreveu:
> > >
> > >   Pessoal o comando case não aceita comparação de strings?
> > > Alguma alternativa? Que não seja if if if?
> > > case trim(UpperCase(sTabela)) of 'FCHISTOR': Begin
> > >
> > > Como vai ter muitas comparações eu nao gostaria que passa-se em
>todas
> > > as opções como no if.
> > > qual a alternativa?
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com

Responder a