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 :

ListeBox.. et object


Sujet :

Delphi

  1. #1
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut ListeBox.. et object
    bonjour ,
    J'ai une listbox qui a un object associé a ces items.

    Donc en ce moment j'ai une (2eme string) associé a mes items , qui est creé au moment de l'ajout de ma chaine dans ma listbox (ListBox1.Items.AddObject(...) )

    Je sais changer le contenu de l'items selectionné , mais pas
    le contenu de l'object de l'items !!.

    quelqu'un peut il m'aiguiller pour modifier le contenu de l'object ?

    merci d'avance.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Il faut caster l'objet récupéré.

    Je m'explique :

    soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TMyObject = class(TObject)
      x: string;
    end;
    tu ajoutes dans ton listBox de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var z: TMyObject;
    begin
      z := TMyObject.Create;
      z.x := 'test';
      ListBox1.Items.AddObject('un',z)
      ...
    Pour afficher le contenue de la partie myObject ce premier élément il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showMessage(TMyObject(ListBox1.Items.Objects[0]).x);
    Donc pour modifier il suffit simplement de faire par exemple pour l'objet d'indice 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMyObject(ListBox1.Items.Objects[0]).x := valueStr
    Regarde bien les méthodes
    indexOf, indexOjObject pour retrouver les indices à passer à ListBox1.Items.Objects[indice]

    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    deja definir le type d'objet que l'on veut
    exemple
    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
    23
    24
    25
    type
        TmysString = Class(Tobject)
       Private
         fvalue : String ;
         Procedure Setvalue (avalue : String) ;
         Function  GetValue  : String;
       Public
        Constructor Create(avalue : String) ;
        Property  Value : String Read GetValue Write Setvalue ;
      end;
    implementation
     Procedure  TmysString.Setvalue (avalue : String) ;
     begin
      fvalue := avalue;
     end;
     
     Function  TmysString.GetValue  : String;
     begin
       Result :=fvalue;
     end;
     
     Constructor TmysString.Create(avalue : String) ;
     begin
      fvalue := avalue;
    end;
    ensuite son utilisation au sein de ton appli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var
      pos : integer;
    ...
    begin
    //on verifie que le libelle n'existe pas 
    if List.Items.IndexOf(Libelle) = -1 Then
     pos:=List.Items.AddObject(Libelle,TmysString.Create(code));
    c'est un exemple basique mais le principe est là
    @+ Phil

    PS argg Trop tard
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    OK merci çà roule !

    a plus.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

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

Discussions similaires

  1. Notion de boucles dans Business Object
    Par lionelEIGIP dans le forum Deski
    Réponses: 1
    Dernier message: 08/04/2004, 11h26
  2. Réponses: 2
    Dernier message: 30/01/2004, 14h07
  3. [DDL] "object <table> is in use"
    Par TMuet dans le forum SQL
    Réponses: 4
    Dernier message: 26/01/2004, 10h18
  4. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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