Evenements GUI
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 2
- Messages : 24
- Enregistré le : mer. 18 janv. 2017 12:25
- Status : Hors ligne
Evenements GUI
Bonjour,
Est il possible de capturer un événement "je change de valeur" dans une listview (equivalent de onchange en vb).
Si jamais ce n'est pas possible est ce possible que je capture l evenement "j appuie sur entrée" sur une ligne de ma listview
L'idée est d actualiser tout les champs de mon gui quand je selectionne une ligne de ma listview
Si c'est possible pouvez vous me donner un exemple de code ?
Merci pour tout
Est il possible de capturer un événement "je change de valeur" dans une listview (equivalent de onchange en vb).
Si jamais ce n'est pas possible est ce possible que je capture l evenement "j appuie sur entrée" sur une ligne de ma listview
L'idée est d actualiser tout les champs de mon gui quand je selectionne une ligne de ma listview
Si c'est possible pouvez vous me donner un exemple de code ?
Merci pour tout
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Evenements GUI
Bonjour,
Faites une recherche sur GUIListViewEx.au3 (de Melba si je me trompe)
Autrement, pour une "écoute" d'une listview: WM_NOTIFY
Une remarque, en principe, "le bout de gras", c'est celui qui pose la question (son code en exemple) avec son problème. Autrement, il est difficile de vous répondre !
Faites une recherche sur GUIListViewEx.au3 (de Melba si je me trompe)
Autrement, pour une "écoute" d'une listview: WM_NOTIFY
Une remarque, en principe, "le bout de gras", c'est celui qui pose la question (son code en exemple) avec son problème. Autrement, il est difficile de vous répondre !
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Evenements GUI
Complément à la réponse de walkson :
On peut touver la liste des notifications pour une Listview dans le fichier d'aide, fonction _GUICtrlListView_Create (par exemple $LVN_ITEMACTIVATE)
Le code d'exemple y est très complet
On peut touver la liste des notifications pour une Listview dans le fichier d'aide, fonction _GUICtrlListView_Create (par exemple $LVN_ITEMACTIVATE)
Le code d'exemple y est très complet
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
-
- Niveau 2
- Messages : 24
- Enregistré le : mer. 18 janv. 2017 12:25
- Status : Hors ligne
Re: Evenements GUI
Merci pour vos Reponses
Alors pour aller plus dans le "gras" voici un code example, qui aidera à mieux cerner mon besoin:
Et ce que je recherche :
a) en me deplacant au clavier dans ma listview je fait apparaitre dans la textbox ma selection (la ligne entiere de ma listview en bleu)
b) Si la a n'est pas possible je souhaiterais lorsque j'appuie sur entrée faire apparaitre dans ma texte box le contenu de ma selection
Pour le code WM_NOTIFY j'ai besoin d'eviter de m en servir
Pour $LVN_ITEMACTIVATE, je vais voir dans l'aide si je trouve quelque chose d interresant (et bien sur si je trouve tout seul je poste ma solution)
Merci pour tout
Alors pour aller plus dans le "gras" voici un code example, qui aidera à mieux cerner mon besoin:
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Local $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
$MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
EndSwitch
WEnd
EndFunc ;==>Example
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Local $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
$MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
EndSwitch
WEnd
EndFunc ;==>Example
Et ce que je recherche :
a) en me deplacant au clavier dans ma listview je fait apparaitre dans la textbox ma selection (la ligne entiere de ma listview en bleu)
b) Si la a n'est pas possible je souhaiterais lorsque j'appuie sur entrée faire apparaitre dans ma texte box le contenu de ma selection
Pour le code WM_NOTIFY j'ai besoin d'eviter de m en servir
Pour $LVN_ITEMACTIVATE, je vais voir dans l'aide si je trouve quelque chose d interresant (et bien sur si je trouve tout seul je poste ma solution)
Merci pour tout
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Evenements GUI
Bonjour,
Avec la touche Entrée
Si on utilisait WM_NOTIFY, la touche entrée serait inutile. La simple sélection suffirait.
Avec la touche Entrée
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
HotKeySet ( "{ENTER}" , "listviewread" )
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
EndSwitch
WEnd
EndFunc ;==>Example
Func listviewread()
$AAA = StringReplace(GUICtrlRead(GUICtrlRead($idListview)),"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndFunc
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
HotKeySet ( "{ENTER}" , "listviewread" )
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
EndSwitch
WEnd
EndFunc ;==>Example
Func listviewread()
$AAA = StringReplace(GUICtrlRead(GUICtrlRead($idListview)),"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndFunc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Evenements GUI
Pourquoi diable ??Pour le code WM_NOTIFY j'ai besoin d'eviter de m en servir
@walkson
Dans ce genre de cas je préfère un accélérateur à une hotkey - surtout pour la touche Enter
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
Local $idUser = GUICtrlCreateDummy()
Local $aAccelKeys[1][2] = [["{ENTER}", $idUser]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
Case $idUser
listviewread()
EndSwitch
WEnd
EndFunc ;==>Example
Func listviewread()
$AAA = StringReplace(GUICtrlRead(GUICtrlRead($idListview)),"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndFunc
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
Local $idUser = GUICtrlCreateDummy()
Local $aAccelKeys[1][2] = [["{ENTER}", $idUser]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
Case $idUser
listviewread()
EndSwitch
WEnd
EndFunc ;==>Example
Func listviewread()
$AAA = StringReplace(GUICtrlRead(GUICtrlRead($idListview)),"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Evenements GUI
J'ai oublié qu'il y avait plus simple en récupérant les ID des GUICtrlCreateListViewItem()
Dans ce cas, un simple clic sur la listview renvoie la valeur
Si les items sont nombreux ou si il y a des rajouts, on peut enregistrer les ID des items dans un array et récupérer les valeurs en faisant
Mais c'est quand même plus simple d'utiliser WM_NOTIFY
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
Case $idItem1 To $idItem3
$valrow = GUICtrlRead($msg)
$AAA = StringReplace($valrow,"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndSwitch
WEnd
EndFunc ;==>Example
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Mon Gui", 440, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
Global $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Global $MonChamp = GUICtrlCreateInput("", 220, 10, 200,30)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2);réagit sur clic d'entête des colonnes
Case $idItem1 To $idItem3
$valrow = GUICtrlRead($msg)
$AAA = StringReplace($valrow,"|"," ")
GUICtrlSetData($MonChamp,$AAA)
EndSwitch
WEnd
EndFunc ;==>Example
Case $idItem1 To $idItem3
est valable si tous les items sont construits à la suiteDans ce cas, un simple clic sur la listview renvoie la valeur
Si les items sont nombreux ou si il y a des rajouts, on peut enregistrer les ID des items dans un array et récupérer les valeurs en faisant
Case $array[0] To $array[ubound($array) - 1]
Mais c'est quand même plus simple d'utiliser WM_NOTIFY
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
-
- Niveau 2
- Messages : 24
- Enregistré le : mer. 18 janv. 2017 12:25
- Status : Hors ligne
Re: Evenements GUI
Merci pour tout !
Je vais tester
Je vais tester