je sais que le sujet à déjà été traité mais je ne trouve pas de réponse à mon dysfonctionnement.
J'utilise dans mon script une façon de faire (bonne ou mauvaise mais la même partout) et je voudrais continuer.
Dans un premier temps j'utilise les options suivantes :
Code : Tout sélectionner
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1) ;
Code : Tout sélectionner
_Form()
Func _Form()
Global $Form = GUICreate("form", 653, 239, -1, -1, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_FormOff")
Global $ListView = _GUICtrlListView_Create($Form, "", 8, 8, 634, 182, BitOr($LVS_REPORT, $LVS_SHOWSELALWAYS))
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_BORDERSELECT))
_GUICtrlListView_InsertColumn($ListView, 0, "Col 1", 70)
Global $Button = GUICtrlCreateButton("Exit", 512, 200, 120, 25)
GUICtrlSetOnEvent(-1, "_FormOff")
EndFunc
Func _FormOn()
_Form()
GUISetState(@SW_SHOW, $Form)
_FormWait() ; Si cette ligne est commentée le mode OnEvent est respecté
EndFunc
Func _FormOff()
GUISetState(@SW_HIDE, $Form)
EndFunc
Func _FormWait()
_GUICtrlListView_RegisterSortCallBack($ListView,False)
GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
While 1
Sleep(100)
WEnd
_GUICtrlListView_UnRegisterSortCallBack($ListView)
GUIRegisterMsg($WM_NOTIFY, "")
EndFunc
While 1
Sleep(1000) ; Boucle de d'attente
WEnd
Ce qui ne fonctionne pas c'est les actions sur le bouton, probablement à cause de la boucle while qui une fois initalisé ne peux être intérompue dans le mode OnEvent, comment faire alors pour que par exemple ma fonction _FormOff() soit prise en compte ?
D'avance merci pour votre aide.