Comment sélectionner des éléments d'un Combobox structuré

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

Comment sélectionner des éléments d'un Combobox structuré

Message par Micoute »

Bonjour à tous,

je me tourne vers vous, car mon problème est que j'ai toujours la même valeur dans tous les champs de mon combobox. Je vous remercie pour votre aide précieuse

Code : Tout sélectionner

Procedure Selectionner_Rdv()
  Protected Choix = GetGadgetState(#Lst_Rdv)
  
  If Choix <> -1
    SelectElement(Rdv(), GetGadgetItemData(#Lst_Rdv, Choix))
    With Rdv()
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Qui)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Quand)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Heure)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Profession)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Nom)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Adresse)
    EndWith
  EndIf
  
  SetGadgetData(#Fenetre_principale, 1) ;C'est une modification
  
  DisableGadget(#Btn_Nouveau, #False)
  DisableGadget(#Btn_Maj, #False)
  DisableGadget(#Btn_Supprimer, #False)
  SetActiveGadget(#Cmb_professions)
EndProcedure
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment sélectionner des éléments d'un Combobox structur

Message par Micoute »

Bonjour à tous,

je me retourne à nouveau vers vous, car je n'ai peut-être pas bien expliqué mon problème de combobox structurée.

Mon programme est une gestion de rendez-vous avec des praticiens
le premier gadget est un CalendarGadget d'où je récupère la date du rdv
le suivant est un combobox où je choisi une profession
celui après est un combobox dans lequel j'ai la liste des praticiens faisant cette profession dans laquelle je choisi mon praticien
ensuite j'ai un combobox contenant les membres de ma famille
et pour finir, j'ai un combobox contentant les horaires de rdv.

Maintenant que le décor est planté, j'ajoute que tous les combobox sont structurés, je vous montre mes strucrtures

Code : Tout sélectionner

;Structure d'une profession
Structure Profession
  Profession.s
EndStructure

;Structure d'un praticien
Structure praticien
  Nom.s
  Prenom.s
  Profession.Profession
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure

Structure provis
  Nom.s
  Prenom.s
  Profession.s
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure

Structure Rdv
  Qui.s
  Quand.s
  Heure.s
  Profession.s
  Nom.s
  Adresse.s
  Tel.s
  CP.s
  Ville.s
  Complement.s
EndStructure

Structure Patientelle
  Nom$
EndStructure
je les utilise peut-être mal et au lieu de mettre SetGadgetIntemText, je devrais peut-être mettre SetGadgetText dans mon combobox, en fait je suis perdu, car je ne vois pas la solution qui est peut-être trop simple pour que je la vois.
Si vous en avez besoin, je peux fournir le code source, car je me suis peut-être emmêler les pinceaux, je vous en supplie venez à mon secours et je vous en remercierai beaucoup.
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Comment sélectionner des éléments d'un Combobox structur

Message par Ar-S »

doc a écrit : SetGadgetItemText() : Change le texte de l'élément spécifié
SetGadgetState() : Change l'élément sélectionné.
SetGadgetText() : Change le texte affiché. Si le ComboBoxGadget n'est pas éditable, le texte doit être dans la liste déroulante.
Sinon pour ton code, je pense que déjà, tes structures pourraient être simplifiées.
Tu as les mêmes champs pour praticiens et provis

Code : Tout sélectionner

  
  ;Structure d'une profession
Structure Profession
  Profession.s
EndStructure

;Structure d'un praticien
Structure personne
  Nom.s
  Prenom.s
  Profession.Profession
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure


Structure Rdv
  Qui.s
  Quand.s
  Heure.s
  Profession.s
  Nom.s
  Adresse.s
  Tel.s
  CP.s
  Ville.s
  Complement.s
EndStructure

Structure Patientelle
  Nom$
EndStructure


; exemple


praticien.personne
With praticien
  \Nom.s = "Bismute"
  \prenom.s = "Bob"
  ; etc etc
  
EndWith


provis.personne
With Provis
   \Nom.s = "Boudin"
  \prenom.s = "Pierre"
  ; etc etc
EndWith


Debug provis\Nom
Debug praticien\Nom
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment sélectionner des éléments d'un Combobox structur

Message par Micoute »

Merci Ar-s pour ton aide providentielle,

C'est vrai que j'ai fait une magouille, car je n'ai pas trouvé mieux pour pour récupérer les professions :

Code : Tout sélectionner

Procedure Charger_praticiens()
  
  TrierListeStruc(Provis(), #PB_Sort_Ascending, provis\Nom)
  TrierListeStruc(Provis(), #PB_Sort_Ascending, provis\Profession)
  
  ForEach Provis()
    AddElement(mesPraticiens())
    With Provis()
      mesPraticiens()\Adresse = \Adresse
      mesPraticiens()\CodePostal = \CodePostal
      mesPraticiens()\Nom = \Nom
      mesPraticiens()\Prenom = \Prenom
      mesPraticiens()\Tel = \Tel
      mesPraticiens()\Ville = \Ville
      FindMapElement(praticiens(), \Profession)
      mesPraticiens()\Profession\Profession = praticiens()\Profession
    EndWith
  Next
EndProcedure
le problème c'est que je me suis perdu en route parce que j'ai trop de structures d'où ma confusion mentale.

J'espère qu'après la restauration de ma carotide droite, le 8 octobre, mon cerveau sera à nouveau irrigué et que je retrouverai mes facultés cérébrales.

Merci encore.
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre