IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Procédure déclenchée par une chaine


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut Procédure déclenchée par une chaine
    bonjour
    est il possible d'appeler une procedure par son intitulé écrit sous forme de chaine
    avec qque chose de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      var chaine:string;
      begin
      chaine = 'travail_1';
      chaine;
    end;
    actuelllement, j'utilise la métode 'case', mais c'est limité.
    merci
    Jean Pierre

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Koe,

    Je suppose que tu as essayé, et tu sais donc que la réponse est non.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Comme le dit Droggo, la réponse est non.
    Peux-tu nous exposer un peu plus ce que tu souhaites faire ?
    Pourquoi le case est-il limité ?
    Un peu de code peut-être ?

    Merci

  4. #4
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Non, non c'est peut-être un peu rapide.

    cherche du côté de l'unité typInfo.pas
    GetMethodProp

    PS : Tu peux aussi de façon plus simple utiliser une liste d'action et accéder à l'une d'entre elle par son nom.
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    je travaille avec des cours boursiers
    le même type de procédure doit pouvoir s'effectuer à la demande sur différentes unités de temps de mes données d'ou lecture de différentes Tstring puis dans la Tstring choisie, on lit l'une ou l'autre donnée (paramètre variable 'o' du code)
    cum_quand_maximum('o',300)
    et j'aurai beaucoup de procédures différentes, donc ça fait vraiment beaucoup de cas à gérer.
    pour ça que si qqun a une idée, je suis preneur
    si Yurck voulait bien développer un peu son idée, pcq je ne vois pas quelle est son idée avec getmethodprop
    merci
    Jean Pierre

  6. #6
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Tu pourrais concevoir une classe avec des propriétés mises à jour par une méthode qui elle est appelable via SetPropValue



    allez un petit exemple à main levée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
      TMaClassDeTraitement = class
      private
        FMethodeAppelable: boolean;
        procedure SetMethodeAppelable(const Value: boolean);
      published
         public
            property MethodeAppelable : boolean read FMethodeAppelable write SetMethodeAppelable;
         end;
     
    function  AppelDeMaMethodeParametreBoolean( MaClassDeTraitement   : TObject;
                                                NomDeMaMethode        : String;
                                                MonParametreBoolean   : Boolean)  : Boolean;
     
    implementation
     
    uses typinfo;
     
    procedure TMaClassDeTraitement.SetMethodeAppelable(const Value: boolean);
    begin
      FMethodeAppelable := Value;
      // En fonction de ce que je vaux faire je fais mon traitement
    end;
     
     
    function  AppelDeMaMethodeParametreBoolean( MaClassDeTraitement   : TObject;
                                                NomDeMaMethode        : String;
                                                MonParametreBoolean   : Boolean)  : Boolean;
    begin
      if IsPublishedProp(MaClassDeTraitement, NomDeMaMethode) then
      begin
         Result := GetPropValue(GetObjectProp(MaClassDeTraitement,NomDeMaMethode), NomDeMaMethode, MonParametreBoolean);
         SetPropValue(GetObjectProp(MaClassDeTraitement,NomDeMaMethode), NomDeMaMethode, MonParametreBoolean);
      end
    end;
    Tu peux ainsi traiter toutes sortes de paramètre en créant un record ou autres

    Suis-je clair ?

    Sans quoi tu peux aussi déclarer une liste d'actions et boucler sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      For i := 0 to (ActionsListe.ActionCount - 1) do
         if ActionsListe.Actions[i].Name = NomDeMaMethode then
           ActionsListe.Actions[i].exceute;
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    merci, je pense qu'avec ça, je vais pouvoir me débrouiller.
    je m'y jette!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/02/2008, 21h25
  2. [VBA] remplacer null par une chaine de caractère
    Par Bernard123 dans le forum VBA Access
    Réponses: 8
    Dernier message: 20/04/2007, 16h35
  3. Comment remplacer le nom d'un controle par une chaine ?
    Par roico dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 11h49
  4. Réponses: 3
    Dernier message: 05/01/2007, 15h50
  5. Réponses: 3
    Dernier message: 26/07/2006, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo