Gabriel Herdt wrote: > 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;
Quanto a Delphi 8 em diante eu não sei, veja o que o help diz a você. Nas versões anteriores, case trabalha apenas com tipos enumeráveis, ou seja, char e números inteiros em geral. Ele não foi criado apenas pra bonito, mas porque o compilador pode gerar um código mais otimizado quando você tem comparações com estes tipos de dados. Para fazer um 'case' com string você tem dois caminhos. O mais prático é com a infinidade de ifs. Não fica muito elegante mas fica um código bem otimizado, caso a sua preocupação também seja performance. Procure colocar na frente aqueles "if" que têm mais chance de dar verdadeiro. Se for indiferente, tanto faz a ordem. Para que o seu código fique menos feio, chame procedures locais ao invés de criar um begin/end para cada opção. Caso maiúsculo e minúsculo sejam indiferentes, use SameText ao invés de string = string. O caminho mais elegante é criar uma classe para cada resposta, colocar a resposta correta como um método de classe e "registrar" todas as classes envolvidas em uma lista de classes. É uma solução bem mais escalável, mas se o que você precisa é apenas consultar alguns poucos nomes que nunca vão mudar, é melhor deixar esta solução de lado e ficar com ifs + procedures locais mesmo. -- Joao Morais -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html