Utiliser case of avec des chaines

Contenu du snippet

L'instruction Case Of ne fonctionne qu'avec une variable scalaire. Voici un moyen de l'utiliser avec des chaines.

-Créer une Form avec 1 bouton et 2 Edits (propriétés Text='').
-tapez le code suivant en réponse à l'événement Button1Click du Bouton:

Source / Exemple :


procedure TForm1.Button1Click(Sender: TObject);
var
  ListeDesCas : TStrings;

begin
  ListeDesCas := TstringList.create;

  try
    ListeDesCas.Add ('cas1');
    ListeDesCas.Add ('cas2');
    ListeDesCas.Add ('cas3');

    Case ListeDesCas.IndexOf(Edit1.Text) of
      0: Edit2.Text := 'Opération 1';
      1: Edit2.Text := 'Opération 2';
      2: Edit2.Text := 'Opération 3';
      else Edit2.Text := '';
    end;
  finally ListeDesCas.Free;
  end;
end;

Conclusion :


Dans Edit1, entrez "cas1" ou "cas2" ou "cas3"...
Cliquez le bouton.
Edit2 se mettra à jour en fonction de la chaine entrée dans Edit1.

Remarquez que, grâce à TStringList, le résultat est insensible à la casse de la chaine entrée.

Si vous en faites un usage intensif, vous avez tout intérêt à en faire une fonction. Par exemple, envoyer la chaine à traiter en paramètre, et en retour recevoir un entier. Ensuite utiliser Case Of normalement.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.