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

Delphi Discussion :

TList, TObjectlist, class et pointer


Sujet :

Delphi

  1. #1
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 325
    Par défaut TList, TObjectlist, class et pointer
    Bonjour à tous,

    Sous Delphi Tokyo.
    Après de nombreuses utilisation de tList, je butte sur certaines longueurs (et peut-être mauvaises pratiques) et tente de m'améliorer en regardant les tObjetList et la création de class.
    Mon but est d'avoir des listes d'objets plus ou moins complexes dont certains éléments peuvent pointer vers des éléments d'autres listes d'objets. J'espère aussi, par la création de classes, éviter de toujours répéter de nombreuses lignes de code.

    Si je créé un objet contenant un integer et un string (tcObjet), et un tObjectList de cet objet (tcObjetListe=tObjectList<tcObjet>), est-il possible de récupérer le pointeur d'un objet tcObjet ?
    @TcObjetListe[Index] et ^TcObjetListe[Index] ne me retourne pas le bon pointeur ou déclenche un défaut.

    Peut-être que je me fais des nœuds au cerveau en tentant d'utiliser le tObjectList sans l'automatisme qui en fait son intérêt...

    Qu'en pensez-vous ?
    Existe-t-il d'autres objets (je pense au tCollection) qui permettraient de résoudre ce type de problème ?

    Merci par avance pour vos avis...

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Chercher du côté des "generics" pour faire des TList<Integer>, TList<Single>, etc.

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par Galet Voir le message
    Si je créé un objet contenant un integer et un string (tcObjet), et un tObjectList de cet objet (tcObjetListe=tObjectList<tcObjet>), est-il possible de récupérer le pointeur d'un objet tcObjet ?
    @TcObjetListe[Index] et ^TcObjetListe[Index] ne me retourne pas le bon pointeur ou déclenche un défaut.
    sous Delphi les classes SONT des pointeurs, donc pas d'opérateur @ ou ^ et tout va bien


    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
     
    var
      l: tcObjectListe;
      o: tcObject;
    begin
      l := tcObjectListe.Create;
      o := tcObject.Create;
      l.Add(o);
      o := tcObject.Create;
      l.Add(o);
     
      o := l[0];  // le premier
      l[1].Propriété_De_tcObject := ... // accès au deuxième
     
      l.Free;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Existe-t-il d'autres objets (je pense au tCollection) qui permettraient de résoudre ce type de problème ?
    Nostroyo à fait deux ou trois vidéos type HOW TO, très courtes donc, sur le sujet à regarder pour "dénouer les nœuds du cerveau"
    https://delphi.developpez.com/index/...l-de-nostroyo/
    https://delphi.developpez.com/index/...l-de-nostroyo/
    https://delphi.developpez.com/index/...l-de-nostroyo/

  5. #5
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 325
    Par défaut
    Merci à tous les trois, je vais regarder et tester tout ça avant de clore si OK...
    Cordialement,

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

Discussions similaires

  1. TObjectList class differente
    Par ouiouioui dans le forum Débuter
    Réponses: 6
    Dernier message: 11/05/2012, 17h40
  2. pointer générique de fonction d'une class
    Par LastSpear dans le forum Langage
    Réponses: 14
    Dernier message: 29/11/2011, 20h02
  3. Null pointer lors de l'instanciation d'une class
    Par saraya dans le forum Langage
    Réponses: 4
    Dernier message: 06/05/2009, 17h53
  4. smart pointer et attribut de classe
    Par fabgamer dans le forum Débuter
    Réponses: 1
    Dernier message: 24/10/2008, 14h51

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