utiliser les hadles au lieux des controlID

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
Nicoloquinte
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 15 juil. 2016 10:57
Contact :
Status : Hors ligne

utiliser les hadles au lieux des controlID

#1

Message par Nicoloquinte » lun. 20 févr. 2017 14:57

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 ... :mrgreen:

Je sais que je m'y prend très mal ... :mrgreen:
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 8)
$aFileList = _FileListToArray($Repertoire, "*")
        Local $Client[$aFileList[0]]
       
        For $i = 1 to $aFileList[0]
                $Client[$i -1][0] = GUICtrlCreateTreeViewItem($aFileList[$i], $Patients)

        Next
_ArraySort($Client)


        Case $Client[0][0] To $Client[$nbITEMS -1][0]  
                msgbox(0,"_GUICtrlTreeView_GetSelection ( $Patients)","Nom du fichier")
je pense me retourner vers un listbox comme conseillé plus tôt par mikell :mrgreen:

merci
Nico ¤_¤

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1744
Enregistré le : mar. 22 juil. 2008 20:55
Localisation : Nantes
Status : Hors ligne

Re: utiliser les hadles au lieux des controlID  

#2

Message par TommyDDR » lun. 20 févr. 2017 15:41

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.
Opt("GUIOnEventMode", 1)
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 $gui
Global $boutonBleu
Global $boutonRouge
Global $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)
WEnd

Func goBleu()
        GUISetBkColor(0x8080FF)
EndFunc

Func goRouge()
        GUISetBkColor(0xFF5050)
EndFunc

Func quit()
        Exit
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5757
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: utiliser les hadles au lieux des controlID

#3

Message par mikell » lun. 20 févr. 2017 16:00

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 :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Nicoloquinte
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 15 juil. 2016 10:57
Contact :
Status : Hors ligne

Re: utiliser les hadles au lieux des controlID

#4

Message par Nicoloquinte » lun. 20 févr. 2017 18:56

J'ai deja noté tout ce que je programme devait faire , mais , je doit develloper car je ne suis qu'un novice en programmation :mrgreen:
je sais ce que je veux faire , mais je ne sais pas ce que je veux faire :mrgreen: :mrgreen:

merci beaucoup TommyDDR , je vais aller voir ça
Nico ¤_¤

Répondre