« Programmation GTK2 en Pascal/GtkComboBox » : différence entre les versions

Ajout 2 fonctions. Exemple supplémentaire.
m (→‎Programme exemple : 2 fois la même image, pffff fatigue)
(Ajout 2 fonctions. Exemple supplémentaire.)
 
ATTENTION : Cette fonction n'est pas définie dans les en-têtes Gtk+ Pascal. Il faut donc ajouter le prototype dans le source où on veut l'utiliser (cf l'exemple ci-dessous).
 
Sinon il y a une fonction qui permet de récupérer le numéro de l'item sélectionné :
 
function gtk_combo_box_get_active(combo_box : PGtkComboBox) : gint;
 
Le premier item a le numéro 0. Si aucun item n'est sélectionné, la fonction renvoie -1.
 
La fonction inverse permet de se positionner sur un item particulier :
 
procedure gtk_combo_box_set_active(combo_box : PGtkComboBox; index : gint);
 
=== Programme exemple ===
pFenPrinc := PFenetrePrincipale(AData);
// Récuperation du texte contenu dans le GtkHScaleGtkComboBox
Texte := gtk_combo_box_get_active_text(GTK_COMBO_BOX(pFenPrinc^.pListeDer));
 
[[Image:Programmation GTK2 en Pascal - gtk029-2.png]]
 
 
On peut légèrement modifier l'exemple pour utiliser les fonctions <code>get</code> et <code>set_active</code>. À l'initialisation, on sélectionne un item (le n° 2) et au clic sur le bouton, on affiche le numéro d'item sélectionné.
 
Extrait du programme <code>gtk030.pas</code> qui est recopié sur celui ci-dessus. Dans la fonction <code>OnBtnClick</code>, on a :
 
[...]
// Récuperation du numéro d'item sélectionné
Texte := g_strdup_printf('%d', [gtk_combo_box_get_active(GTK_COMBO_BOX(pFenPrinc^.pListeDer))]);
[...]
 
Et dans la partie principale, après le chargement de la liste déroulante, on ajoute :
 
[...]
gtk_combo_box_set_active(GTK_COMBO_BOX(pFenPrinc^.pListeDer), 1);
[...]
 
== Utilisation complète (avec modèle) ==
256

modifications