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 VCL Delphi Discussion :

recuperer les elements selectionnés de mon TListBox


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut recuperer les elements selectionnés de mon TListBox
    Bonjour,
    J'ai utilisé un TListBox afin de permettre une selection multiple.
    Maintenant, je veux recuperer les elements selectionnés pour les inserer dans BD (interbase).
    Comment recuperer les items selectionnés dans un TStringList afin que je puisse mettre dans ma BD.

    Merci bien à vous!

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Pour savoir si un item est sélectionné, utilise ListBox1.Selected[Index]. Tu n'as qu'a passer ta liste dans une boucle for et regarder ceux qui sont sélectionnés !

    Bonne chance

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 001
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i := 0 to MaListe.Items.Count - 1 do
    begin
      if (MaListe.Selected[i]) then
        MaStringList.Add(MaListe.Items.Strings[i]);
    end;
    Edit : Oops, devancé.

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut
    cette ligne du code genere une erreur d'execution " violation d'acces à l'adresse ..."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MaStringList.Add(MaListe.Items.Strings[i]);
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     for i := 0 to ListBox1.Items.Count - 1 do
    begin
      if (ListBox1.Selected[i]) then
        MaStringList.Add(ListBox1.Items.Strings[i])
    end;
    DataModule1.T_courrierI.FieldValues['DESTINATAIRE']:= MaStringList.Text;
    Merci bien de me corriger!

  5. #5
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Tu as bien créé ta TStringList ?

  6. #6
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut
    voici la definition de ma variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var MaStringList :TStringList;
    .

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    La question de Mick était:
    Citation Envoyé par mick605 Voir le message
    Tu as bien créé ta TStringList ?
    Autrement dit, cette ligne est-elle bien présente dans ton code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaStringList := TStringList.Create;
    Il faut impérativement créer ta liste avant de pouvoir la manipuler.
    Sans oublier de faire un Free quand tu n'as plus besoin de cette liste.

    @+ Claudius.

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 001
    Par défaut
    Il est vrai que j'ai écrit ce code à la volée mais comme le précise Claudius, si tu ne cree pas au préalable ta stringlist ça ne risque pas de fonctionner.

    Allez, je suis de bonne humeur aujourd'hui

    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
     
    procedure RechSelection;
    var MaStringList : TStrings;
    begin
      MaStringList := TStringList.Create;
      try
        for i := 0 to MaListe.Items.Count - 1 do
        begin
          if (MaListe.Selected[i]) then
            MaStringList.Add(MaListe.Items.Strings[i]);
        end;
        DataModule1.T_courrierI.FieldValues['DESTINATAIRE']:= MaStringList.Text;
      finally
        if (Assigned(MaStringList)) then
          FreeAndNil(MaStringList);
      end;
    end;
    Normalement le "if Assigned(MaStringList)" est inutile dans ce cas là mais je l'ai rajouté juste au cas où.

    Edit : Pour faire bien, j'aurais même pu catcher une éventuelle exception sur l'utilisation de ton module de donnée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/07/2006, 14h43
  2. [ASP][DOM] Récupérer les éléments d'un XML
    Par Tikate dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 03/05/2006, 11h51
  3. compter les éléments sélectionné dans un tag select
    Par lemmings dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2006, 14h07
  4. Récupérer les élements d'une structure ...
    Par Franck.H dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 17/10/2005, 15h48
  5. [VB6] [FileListBox] Récupérer les éléments sélectionnés
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/10/2002, 09h11

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