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

Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
- - Dernière réponse : PythonGreg
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
- 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
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
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;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Caribensila
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
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.