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 :

Récupérer un élément d'une Tlistbox d'un Tpagecontrol


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 45
    Points : 25
    Points
    25
    Par défaut Récupérer un élément d'une Tlistbox d'un Tpagecontrol
    bonjour

    j'ai un Tpagecontrol avec 2 onglets
    j'ai crée une Tlistbox1 dans le Tabsheet1 et une Tlistbox2 dans le Tabsheet2

    mes listbox sont préremplies.

    comment faire pour récupérer le 2e élément (par exemple) de la Tlistbox du Tabsheet actif lorsque je clic sur un bouton?

    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    j'ai oublié de préciser:

    evidement je ne cherche pas des solutions du type if...then...
    en mettant que si c'est le 1er onglet qui est actif alors je lis la 2e valeur du tlistbox1, que si c'est le 2e onglet qui est actif alors je lis la 2e valeur du tlistbox2 parce que je serai prisonnier du côté non automatique et si j'ajoute 100 onglets je serai obligé de faire 100 conditions...

    voilà

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    en fait ce qui me gene c'est qu'on a besoin des noms des listbox pour pouvoir y accéder.
    mais on ne sait pas à l'avance de quelle listbox on à affaire donc on ne peux pas l'écrire en dur dans le programme.
    je ne sais pas si je suis assez clair en fait.

  4. #4
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    listbox.item[active tab sheet index] a mediter

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    ca aurait été bien que ce soit si facile^^
    désolé mais ca n'a pas marché... c'était prévisible.

    "listbox" n'est pas accépté
    le débuggeur dit "identificateur non déclaré."

    c'est justement le problème que je disais
    en fait ce qui me gene c'est qu'on a besoin des noms des listbox (au moment d'écrire le code) pour pouvoir y accéder.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 126
    Points
    13 126
    Par défaut
    Citation Envoyé par gamez Voir le message
    evidement je ne cherche pas des solutions du type if...then...
    Pourtant c'est obligatoire si t veux récupérer un objet (quelconque) Delphi . Le code sera ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with PageControl1.ActivePage do
      for i := 0 to ControlCount -1 do
        if Controls[i] is TListBox then
        begin
          MyVar := TListBox(Controls[i]).Items[1];
          Break;
        end;
    Si la ListBox detient la focalisation, tu pourrais faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if ActiveControl is TListBox then
        MyVar := TListBox(ActiveControl).Items[1];
    Et s'il s'agit de récupérer uniquement le handle du contrôle (appel à une API), tu peux aussi utiliser GetGUIThreadInfo.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    ta solution marche impec.
    il y'a des trucs que je ne connaissais pas dedans.
    c'est pas à cette utilisation du if..then que je pensais, celle que tu proposes convient parfaitement

    merci

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

Discussions similaires

  1. récupérer un élément d'une ListBox
    Par balkis dans le forum JSF
    Réponses: 1
    Dernier message: 15/03/2007, 18h37
  2. Récupérer les éléments d'une énumération
    Par The eye dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/01/2007, 09h45
  3. Récupérer un élément d'une combobox non sélectionnée
    Par skytofer31 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/12/2006, 14h50
  4. Comment récupèrer les éléments d'une JList
    Par Orian dans le forum Composants
    Réponses: 13
    Dernier message: 10/09/2006, 11h53
  5. Réponses: 5
    Dernier message: 22/02/2006, 17h32

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