Page 1 sur 1
utiliser les hadles au lieux des controlID
Posté : lun. 20 févr. 2017 14:57
par Nicoloquinte
Bonjour , j'ai encore un problème avec ces satanés treeview , en effet la fonction _GUICtrlTreeView_GetSelection donne le handle de la sélection ,or ... comment faire pour retrouver le controlID ou le texte écrit sur le bouton ...
Je sais que je m'y prend très mal ...
mais voila le principe :
-un tableau
->>dim 1 = controlID de l'element
-quand on clique sur un element , il affiche le nom du fichier qui lui correspond
et voici mon code
je pense me retourner vers un listbox comme conseillé plus tôt par mikell
merci
Re: utiliser les hadles au lieux des controlID
Posté : lun. 20 févr. 2017 15:41
par TommyDDR
Les éléments créés avec les fonctions d'UDF n'ont pas de CtrlId, seulement des Handle, vous ne pouvez donc pas utiliser de fonction nécessitant un CtrlId avec un élément obtenu par _GUICtrlTreeView_Add(), en revanche, vous pouvez obtenir le Handle d'un CtrlId, et par chance, une fonction existe pour récupérer le texte d'un item de TreeView à partir d'un handle !
Hors sujet : Si vous vous lancer dans un programme qui va commencer à être complexe (et d'une manière général, même pour de petits programmes), je vous conseille de vous renseigner sur le mode événementiel.
Je vous posterai un petit exemple de script en mode événementiel dans la journée.
Edit : Voici un code simple vous montrant la façon dont le mode évènementiel peut rendre votre code plus clair.
#include <GUIConstantsEx.au3>Opt("GUIOnEventMode", 1)Opt("MustDeclareVars", 1)Global $guiGlobal $boutonBleuGlobal $boutonRougeGlobal $taille[2] = [300, 300]$gui = GUICreate("", $taille[0], $taille[1])GUISetOnEvent($GUI_EVENT_CLOSE, quit
, $gui) ; On associe les évènements : "AltF4", "Clic sur croix rouge", "Echap" à la fonction "quit"$boutonBleu = GUICtrlCreateButton("Bleu", 10, 10, 100, 25)$boutonRouge = GUICtrlCreateButton("Rouge", 10, 40, 100, 25)GUICtrlSetOnEvent($boutonBleu, goBleu
) ; On associe le clic sur le bouton "$boutonBleu" à la fonction "goBleu"GUICtrlSetOnEvent($boutonRouge, goRouge
) ; On associe le clic sur le bouton "$boutonRouge" à la fonction "goRouge"GUISetState(@SW_SHOW, $gui)While(True) Sleep(10)WEndFunc goBleu
() GUISetBkColor(0x8080FF)EndFuncFunc goRouge
() GUISetBkColor(0xFF5050)EndFuncFunc quit
() ExitEndFunc
Re: utiliser les hadles au lieux des controlID
Posté : lun. 20 févr. 2017 16:00
par mikell
D'une manière beaucoup plus générale et au vu des épisodes précédents, personnellement je dirais que tu te simplifierais beaucoup la vie si tu définissais dès le départ et avec précision toutes les actions que ton programme devra effectuer
ça te permettrait de définir un plan de script, les meilleurs controles à utiliser, les fonctions à construire, etc
Parce que là ça part dans tous les sens, un vrai feu d'artifice
Re: utiliser les hadles au lieux des controlID
Posté : lun. 20 févr. 2017 18:56
par Nicoloquinte
J'ai deja noté tout ce que je programme devait faire , mais , je doit develloper car je ne suis qu'un novice en programmation
je sais ce que je veux faire , mais je ne sais pas ce que je veux faire
merci beaucoup TommyDDR , je vais aller voir ça