[Résolu] Comment effacer les données d'une liste

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Comment effacer les données d'une liste

Message par Micoute »

Bonjour à tous,

je bute sur un petit problème d'effacement des éléments d'une liste.

Voici ce que je souhaite faire :
j'ai créé une suite dans laquelle on peut trouver l'annuaire de mes praticiens, l'affichage de mes rendez-vous, la gestion des praticiens pour en ajouter ou pour en supprimer, la gestion des patients c'est à dire les membres de la famille, la gestion de prises de rendez-vous et pour finir pour l'instant, la recherche par critères par profession, je verrai par la suite si je peux compléter avec d'autres critères.

j'essaie d'effacer le contenu de ma liste avec ClearGadgetItems que j'ai conditionné, d'habitude ça fonctionne bien.

j'aimerais aussi que la liste s'affiche aussitôt que j'ai cliqué dans le combobox, mais je n'ai pas trouvé alors que dans la liste de courses que je codée pour mon épouse fonctionne très bien.

Je vous remercie beaucoup, car je sais que vous allez m'aider.

Code : Tout sélectionner

Procedure Critere_choisi()
  Protected critere.s = "", Resultat = 0
  Resultat = ListSize(Recherche())
  If Resultat
    ClearGadgetItems(#Lst_Rec_Reponses)
  EndIf  
  Select EventType()
    Case #PB_EventType_LostFocus
      Select EventGadget()
        Case #Cmb_Rec_Profession
          critere =  GetGadgetItemText(#Cmb_Rec_Profession, GetGadgetState(#Cmb_Rec_Profession))
          ;{ remplissage de la liste avec le critère choisi
          ForEach Prise_rdv()
            If Prise_rdv()\Profession = critere
              With Prise_rdv()
                AddElement(Recherche())
                Recherche()\Qui = \Qui
                Recherche()\Quand = \Quand
                Recherche()\Avec = \Avec
                Recherche()\Profession = \Profession
                Recherche()\Heure = \Heure
              EndWith
            EndIf
          Next
          ;}
      EndSelect
  EndSelect
  ;{ remplissage de la liste d'affichage selon les modalités
  i = 0
  ForEach Recherche()
    With Recherche()
      If \Heure
        AddGadgetItem(#Lst_Rec_Reponses, i, \Qui+" "+\Quand+" "+\Avec+" à "+\Heure)
      Else
        AddGadgetItem(#Lst_Rec_Reponses, i, \Qui+" "+\Quand+" "+\Avec)
      EndIf  
      SetGadgetItemData(#Lst_Rec_Reponses, CountGadgetItems(#Lst_Rec_Reponses) - 1, ListIndex(Recherche()))
    EndWith
    i + 1
  Next
  ;}
EndProcedure
Dernière modification par Micoute le lun. 07/juin/2021 8:05, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Comment effacer les données d'une liste

Message par kernadec »

bjr Micoute
a part ces deux commandes je vois pas sinon removegadgetitem

Code : Tout sélectionner

ClearGadgetItems(#Gadget)
; et
For Position = 0  To CountGadgetItems(#Gadget)
RemoveGadgetItem(#Gadget, Position)
next Position
 ;ou
ClearList(Liste()) 


Cordialement
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment effacer les données d'une liste

Message par Micoute »

Merci beaucoup kernadec, ça prouve seulement que j'avais raison, donc je ne comprends pas mieux.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Comment effacer les données d'une liste

Message par Ollivier »

Il faut voir l'ensemble du code : comment est appelée ta procédure ?

Personnellement, tous les fonctions EventType() EventGadget() :
- soit elles ne sont enregistrées qu'une fois pour toute à chaque boucle si un WindowEvent() m'indique qu'il y a besoin de les lire.
- soit elles ne sont pas du tout appelées, et c'est BindEvent() et BindGadgetEvent() qui s'en occupe.
Répondre