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 :

TAG pour chaque element d'une TListBox


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 26
    Par défaut TAG pour chaque element d'une TListBox
    Bonjour,

    Je voudrais associer dans chaque ligne que j'insere dans ma TlistBox un identifiant (ou un tag).
    car il me faudrait qu'une fois la List remplie je puisse double cliquer sur une ligne et recuperer cet identifiant.

    vous voyez?

    je ne trouve pas beaucoup dinformations la dessus a vrai dire.

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Salut

    TList.Items étant du type TStrings, tu peux utiliser la propriété 'objects'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MaListBox.Items.Objects[ MaListBox.ItemIndex ] := TObject( UnEntier );
    ou bien
    MaListBox.ITems.AddObject( machaine, TObject( Monentier ) )
    Etant donné que l'entier doit être de type Longint (ou Integer), sur 4 octets quoi.
    et à l'inverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnEntier := Integer( MaListBox.Items.Objects[ MaListBox.ItemIndex ] );
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 26
    Par défaut
    Violent
    ca marche nickel!! merci bcp

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Et dans ton entier tu peux même stoquer en plus d'un identifiant, des Booleens par exemple pour indiquer l'etat du champ.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 26
    Par défaut
    Bon en fait le souci c'est que jutilise un string et ca marche nickel lorsque jai un enregistrement dans la TlistBox.

    par contre la ou ca devient genant c lorsqu'il ya plusieurs enregistrement, je ne recupere pas vraiment la bonne valeur ou du moins il semble y avoir une erreur de conversion car mon string contient des donnees a la fin (du genre #3###00).

    jai utilise ceci :

    pour inserer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListBox.Items.Add(Values[0]);
    ListBox.Items.Objects[ ListBox.Items.count - 1 ] := Tobject(Values[1]);
    Values[0] etant mon libelle et Values[1] mon identifiant (tous 2 des strings)

    pour lire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TfrmJukebox.ResultBoxDblClick(Sender: TObject);
    var
    UID: String;
    begin
      index:= ResultBox.ItemIndex;
      if index = -1 then exit;
     
      UID := String(ResultBox.Items.objects[index]);
     
    end;

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Il ne faut pas l'utiliser comme cela.

    Utilises cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var  id: Integer;
           S: String;
     
      id := 99;
      S := 'Item';
     
      ListBox1.Items.AddObject(S, TObject(id));
    TObject est un pointeur qui occupe 4 octets en mémoire.
    Tu peux stoquer 32 bits d'informations à cet emplacement.
    Un integer étant stoqué sur 32 bits, tu peux placer un entier pour referencer la chaine ou bien 2 word de 16 bits en utilisant l'operateur shl si tu a besoin de 2 valeurs numeriques associées.

Discussions similaires

  1. convertir chaque element d'une liste
    Par fripette dans le forum Bioinformatique
    Réponses: 15
    Dernier message: 10/08/2007, 11h11
  2. [vba]un onglet tabstrip pour chaque terme d' une colonne
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/03/2007, 09h33
  3. Réponses: 5
    Dernier message: 16/02/2007, 16h03
  4. [CSS] largeur fixe pour les elements d'une liste
    Par arnolpourri dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/05/2006, 13h25
  5. Réponses: 2
    Dernier message: 20/04/2006, 14h33

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