Appel de procédure ou fonction dans Case Of [Résolu]

PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention - 26 oct. 2012 à 06:20 - Dernière réponse : PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention
- 26 oct. 2012 à 18:52
Bonjour à tous ;
J'ai un petit problème voila j'ai une partir serveur qui exécuté des commandes reçu par le client le serveur compte a peu pré 30 commandes.

procedure TFServeur.IdTCPServer1Execute(AContext: TIdContext);
var 
Cmd : string;
begin
  Cmd := AContext.Connection.IOHandler.ReadLn();
   If Cmd = ?Open? then
   Open; // Appel de procedure ou function
End;


Mais je ne peu pas inséré 30 [ If Then ] dans la procédure sa fait énorme ?
Donc j'ai pence qu'un Case Of serai plus adapter a cette situation mais voila comment appelé une fonction ou procédure dans un Case Of

procedure TFServeur.IdTCPServer1Execute(AContext: TIdContext);
var 
Cmd : string;
 I : Integer;
begin
  Cmd := AContext.Connection.IOHandler.ReadLn();
   For I := 1 to length(Cmd) do
   Begin
     Case Cmd[I] of
?Open? := Open; // Apple de procedure ou function  
End;


Merci d'avance pour votre aide.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 26 oct. 2012 à 14:23
3
Merci
Bonjour,

Voici une méthode insensible à la casse :

var
  Cmd : TStrings;
begin
  Cmd := TstringList.create;
  try
    Cmd.Add ('Open');
    Cmd.Add ('Cmd2');
    Cmd.Add ('Cmd3');

    Case Cmd.IndexOf( AContext.Connection.IOHandler.ReadLn() ) of
      0: Open();
      1: DoCmd2();
      2: DoCmd3();
      else ShowMessage('Ce n''est pas une commande.');
    end;
  finally Cmd.Free;  end;
end;

Merci Caribensila 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Caribensila
PythonGreg 70 Messages postés jeudi 3 novembre 2011Date d'inscription 6 février 2015 Dernière intervention - 26 oct. 2012 à 18:52
0
Merci
Merci Caribensila tu ma évité la Procedure spaghetti
Commenter la réponse de PythonGreg

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.