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 :

Acces multiple pour une variable


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut Acces multiple pour une variable
    Bonjour à tous,

    je dispose d'un unité1.pas dans laquelle une liste d'objets est crée. Je souhaite y accéder dans une unité2.pas pour refaire un traitement dessus..

    Pensez-vous que cela soit possible en Delphi?

    Dans mon unité2.pas j'ai bien inclus unité1.pas mais cela ne semble pas fonctionner

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Si ta variable est déclarée dans la partie interface, c'est possible.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    En fait cette variable est le resultat d'une fonction et la déclaration de cette fonction (prototype) est bien dans la partie interface.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2008
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    tu peut utilisé des variables globales.

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par titou31000 Voir le message
    En fait cette variable est le resultat d'une fonction et la déclaration de cette fonction (prototype) est bien dans la partie interface.
    clarifions les choses si tu veux bien avec un exemple bidon

    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
     
    unit unit1;
     
    interface
     
    uses classes;
     
    function GetList:TStringList;
     
    implementation
     
    function GetList:TStringList;
    begin
      Result := TStringList.Create;
    end;
     
    end.
    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
     
    unit main;
     
    interface
     
    uses
     unit1;
     
    implementation
     
    var
      list: TStringList;
    initialization
      list := GetList;
    end.
    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
     
    unit unit2;
     
    interface
     
    uses unit1;
     
    procedure chose;
     
    implementation
     
    procedure chose;
    begin
     // comment accéder à la liste retournée par GetList ?!
    end;
     
    end.
    dans l'état actuel du code, c'est impossible, il faudrait que unit2 utilise main et que main publie List, soit en le plaçant dans l'interface, soit en ajoutant une fonction qui retourne List.

    autre approche, placer la var List dans unit1

    dernière approche, GetList() peut renvoyer toujours la même liste

    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
     
    unit unit1;
     
    interface
     
    uses classes;
     
    function GetList:TStringList;
     
    implementation
     
    var
      List: TStringList = nil;
     
    function GetList:TStringList;
    begin
      if List = nil then
        List := TStringList.Crreate;
      Result := List;
    end;
     
    end.
    là c'est fonction de ton besoin

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    merci pour vos réponses déjà!!

    J'ai pas très bien compris ton exemple donc je le reprends ce matin!!

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    En fait, j'ai plusieurs fonctions qui font a peu près la meme chose et qui renvoit chacune une liste, est-ce que cela complique mon cas??

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par titou31000 Voir le message
    En fait, j'ai plusieurs fonctions qui font a peu près la meme chose et qui renvoit chacune une liste, est-ce que cela complique mon cas??
    cela multiplie simplement le nombre de variables globales et/ou fonctions

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Oui voila mais le soucis c'est que en fonction de certains paramètre j'appelle telle ou telle fonction mais au final je ne veux traiter qu'une liste, la liste en sortie de la fonction appelée...

  10. #10
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par titou31000 Voir le message
    Oui voila mais le soucis c'est que en fonction de certains paramètre j'appelle telle ou telle fonction mais au final je ne veux traiter qu'une liste, la liste en sortie de la fonction appelée...
    tu devrais peut-être revoir les choses

    déclarer 1 liste globale initialisée et vide

    et n fonctions de remplissage

    donc au lieu d'avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fucntion getList1: TList;
    function getList2: TList;
    tu aurais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    procedure FillList1(List: TList);
    procedure FillList2(List: TList);
    voir même des procédures sans paramètres si elles tapent directement dans la List globale.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Moué moué moué je vais réfléchir!!

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

Discussions similaires

  1. Valeurs Multiples pour une variable
    Par backdraf dans le forum Développement
    Réponses: 5
    Dernier message: 07/06/2011, 16h34
  2. UnboundLocalError pour une variable
    Par piotrr dans le forum Général Python
    Réponses: 3
    Dernier message: 04/04/2007, 12h49
  3. 2 valeurs possibles pour une variable : méthode Seek
    Par Corinne4775 dans le forum Access
    Réponses: 8
    Dernier message: 12/02/2007, 19h00
  4. Réponses: 3
    Dernier message: 13/04/2006, 18h04
  5. Réponses: 6
    Dernier message: 08/06/2004, 14h22

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