
Pour ceux qui aimeraient pouvoir créer un menu contextuel basé sur les éléments listés sur un tableau

cet exemple peut vous inspirer.
NB:
- seulement les tableau 1D
-Les boutons n'apparaissent que si vous allez les utiliser : leur donnez un nom
bref!
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.14.2
Auteur: Numeric
Fonction du Script : ArrayDisplay avec context menu NB: 1D Array
Modèle de Script AutoIt.
#ce ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
#include <SendMessage.au3>
;#Exemple.............
$aArray = StringSplit("Mr De L'eau,Mr Le Grand, La secretaire,Poste n°1,Mr le Chat,Mr LE Directeur,Mr l'adjoint",",")
;#Fin d'exemple
$Exemple5 = _ArrayDisplayToControlID($aArray,"Valider","","Supprimer","","Connecter,Voir les details,Voir l'adresse IP")
;Vous pouvez tester ceci pour les controles
;$Exemple = _ArrayDisplayToControlID($aArray,"","","","","Connecter,Voir les details,Voir l'adresse IP")
Func _ArrayDisplayToControlID(ByRef $aArray, $Func1_button_name ='',$Func1='', $Func2_button_name='',$Func2 ='',$Option_NameSplit_Virgule ='')
;#Region Local variable
Local $width = 615, $height = 474, $left = 192, $top = 124
;#EndRegion
Local $Form1 = GUICreate(" ", 615, 474, 192, 124, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP))
Local $List1 = GUICtrlCreateListView("Liste des ordinateurs",64, 24, 457, 381, 0)
Local $Button1 = GUICtrlCreateButton($Func1_button_name, 136, 432, 75, 25)
Local $Button2 = GUICtrlCreateButton($Func2_button_name, 408, 432, 75, 25)
;#Region Controls conditions#
If $Func1_button_name ='' Then
GUICtrlSetState($Button1,$GUI_HIDE)
EndIf
If $Func2_button_name ='' Then
GUICtrlSetState($Button2,$GUI_HIDE)
EndIf
;#EndRegion Controle conditions#
GUISetState(@SW_SHOW)
;#Liste view variables
Local $ContextMenu, $ContextMenuItem, $ListeSwitchable, $ItemList
;#End variable
If Not IsArray($aArray) Then Return SetError(1,1,MsgBox(16,'error','invalid array'))
;Liste view Item
For $i = 1 To $aArray[0]
If $aArray[$i] <>'' Then
$ItemList = GUICtrlCreateListViewItem($aArray[$i],$List1)
;Context Menu
$ContextMenu = GUICtrlCreateContextMenu($ItemList) ;ContextMenu pour les options
If $Option_NameSplit_Virgule <>'' Then ;Si la liste des options n'est pas vide
$Read_Options = StringSplit($Option_NameSplit_Virgule,',') ;Recuperation de la liste des options ecrites en parametre et diferenciees par des virgules
For $p = 1 To $Read_Options[0] ;lecture liste d'options
$ContextMenuItem = GUICtrlCreateMenuItem($Read_Options[$p],$ItemList)
Next ;Fin de lecture des options
EndIf ; End condition : Liste non vide
EndIf; End condition si un ou des elements du tableau ne sont pas vide
Next; End Lecture du tableau
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
Case $Button2
EndSwitch
WEnd
EndFunc