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 :

paramétrage d' une procédure


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut paramétrage d' une procédure
    Dans une procédure, j'ai besoin de récupérer des données vennant de divers objets et des renvoyer d'autres valeurs après excécution des instructions dans d'autres objets
    Par conséquent dans la déclaration , j'ai besoin de paramètrer soit la propriétes d'un objet
    ex : Edit1.text ou Edit2. text
    soit une partie de la proprietée de l'objet (1) ou (2) de l'ex précedent

    Je pensais faire par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure machin(lieu1,lieu2:string);
    Var
    a,b:integer;
    begin 
    a:=StrToInt(lieu1);
    // ensuite diverses instructions qui aboutissent à une valeur de b
    lieu2:=IntToStr(b);
    end;
     
    // dans un appel de pprocédure
    machin(Edit1.text,Edit2.text);
    Ca ne marche pas avec toutes les variantes que j'ai 'essayées.
    Je suppose qu'il y a une solution (certainement très simple) et qu'il s'agit d'un probléme de type, mais je n'ai rien vu sur la FAQ et ni avec F1


    Comment ?

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 180
    Points : 107
    Points
    107
    Par défaut
    Bon, si j ai bien compris ce que tu veux dire, tu peux utiliser soit un type Record qui peux contenir plusieurs champs, sinon simplement faire des passage de pramètres par adresse (et non par valeur). Pour ce il suffit de mettre le mot clé var devant tes paramètres

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 151
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Pourrais tu indiquer le message d'erreur que delphi t'affiche? Car ça nous ne dit pas où est ton problème.
    Max

  4. #4
    Membre habitué Avatar de Guile
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 130
    Points : 144
    Points
    144
    Par défaut
    Comme les autres, je n'ai pas bien compris ce que tu cherches à faire mais en tout cas, dans ton code, ça ne sert à rien d'affecter une valeur à lieu2 si tu ne le déclares pas en VAR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure machin(lieu1 : string; var lieu2:string);
    ça ne serait pas ça ton problème par hasard ?
    Il existe 10 sortes de personnes, ceux qui comprennent le binaire et les autres...

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Il est impossible de passer la property d'un objet (exemple : edit2.text) en tant que paramètre var (par exemple, lieu2 : string).

    Une solution consiste donc à créér une variable danbs le progamme appelant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var s2 : string;
     
    ...
    s2:=edit2.text ;
    machin(...,s2) ;
    edit2.text:=s2 ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    on peut faire aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure machin(lieu1,lieu2:TEdit); 
    Var 
    a,b:integer; 
    begin 
    a:=StrToInt(lieu1.text); 
    // ensuite diverses instructions qui aboutissent à une valeur de b 
    lieu2.Text:=IntToStr(b); 
    end; 
     
    // dans un appel de pprocédure 
    machin(Edit1,Edit2);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Pour répondre aux questions relatives à mon post initial:
    je veux tout simplement utiliser une procédure commune à plusieurs BTclick pour éviter d'écrire plusieurs fois des procédures quasi identiques et ainsi raccourcir le code et limiter les variantes globales , mais les paramètres qui me bloquent sont des TEdit, Tstatic; et autres.

    La solution de bjl est exactement celle qui me convient pour mon application
    En plus, cela m'a permis d'étendre ce prinipe pour tous les objets


    Merci , merci à tous,

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  3. Réponses: 12
    Dernier message: 27/08/2003, 11h04
  4. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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