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

Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015
- - Dernière réponse : PythonGreg
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
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
Statut
Membre
Dernière intervention
26 juillet 2018
10
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 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Caribensila
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015
0
Merci
Merci Caribensila tu ma évité la Procedure spaghetti
Commenter la réponse de PythonGreg