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

Composants FMX Delphi Discussion :

[XE4] ListBox et AddObject


Sujet :

Composants FMX Delphi

  1. #1
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 961
    Points
    1 961
    Par défaut [XE4] ListBox et AddObject
    J'ai du mal à comprendre ce qui ne va pas dans ce qui suit :

    ListBoxItem.AddObject réclame un TFmxObject cf l'aide : procedure AddObject(const AObject: TFmxObject);

    Pour récupérer l'objet, on doit faire ListBox.Items.Objects[Index] et cela renvoie un TObject... ( vu que TFmxObject descend de TObject, cela ne doit pas poser de problème )

    Ok, je vais donc utiliser des objets descendants de TFmxObject

    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
     
    Type MaClasse Class(TFmxObject)
    ...
    end;
     
    ...
    // j'ai besoin de gérer une liste d'objets de MaClasse :
    pSeq_ListeCmt : array[Avant..Apres] of TObjectList<MaClasse>;
    	...
     
        for l_iCpt := 0 to pSeq_ListeCmt[l_Etape].Count - 1 do
        begin
          l_Item := TListBoxItem.Create(ListBox1);
          l_Item.Parent := ListBox1;
         // J'affecte le libellé de l'item : c ok, je vois bien le libellé dans la listbox
          l_Item.Text := (pSeq_ListeCmt[l_Etape].Items[l_iCpt] as MaClasse).Libelle; 
          // on mémorise l'objet associé à l'item de la liste
          l_Item.AddObject(pSeq_ListeCmt[l_Etape].Items[l_iCpt]);
        end;
     
    	//  lorsque je veux récupèrer l'objet, celui-ci est égale à Nil ?
    	l_MonObjet := MaClasse(ListBox1.Items.Objects[ListBox1.ItemIndex]);

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par free07 Voir le message
    J'ai du mal à comprendre ce qui ne va pas dans ce qui suit :
    Rien de bien extraordinaire, vous affectez votre objet au listboxitem et non à la listbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        for l_iCpt := 0 to pSeq_ListeCmt[l_Etape].Count - 1 do
        begin
          l_Item := TListBoxItem.Create(ListBox1);
          l_Item.Parent := ListBox1;
         // J'affecte le libellé de l'item : c ok, je vois bien le libellé dans la listbox
          l_Item.Text := (pSeq_ListeCmt[l_Etape].Items[l_iCpt] as MaClasse).Libelle; 
          // on mémorise l'objet associé à l'item de la liste
          // Non ! pas vers le listboxitem
          //l_Item.AddObject(pSeq_ListeCmt[l_Etape].Items[l_iCpt]);
          // Je référence l'objet auprès de la listbox
          ListBox1.Items.Objects[l_iCpt] := pSeq_ListeCmt[l_Etape].Items[l_iCpt];
        end;
    Philippe.

  3. #3
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Bonjour,
    Rien de bien extraordinaire, vous affectez votre objet au listboxitem et non à la listbox.
    Bon, j'ai besoin de repos....

    Je me doutais bien que c'étais une belle connerie dans ce style, tellement gros qu'on ne le voit même pas, merci !

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

Discussions similaires

  1. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  2. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  3. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 13h02
  5. Copier le texte d'un ListBox dans le clipboard.
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/08/2002, 08h20

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