j'ai un souci :
- je voudrais mettre une fonction en paramètre dans une autre fonction: ceci n'est pas un problème.
-Le problème c'est:
1) appeler la fonction mise en paramètre à l'aide d'un contrôle crée pour ce fait.
2) Mais la fonction mise en paramètre est automatiquement exécutée quand la fonction principale est appelée.
voici un exemple :
Code : Tout sélectionner
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>
FonctionUtilisateur(Msg_USER('Salut à vous !')); Appel de la fonction principale avec comme paramètre la fonction à appeler
; #FUNCTION# ====================================================================================================================
; Name ..........: FonctionUtilisateur
; Description ...: Fonction Principale ayant pour rôle d'appeler la fonction secondaire mise en paramètre
; Syntax ........: FonctionUtilisateur($USER_Func)
; Parameters ....: $USER_Func - an unknown value.
; ===============================================================================================================================
Func FonctionUtilisateur($USER_Func)
If Not IsFunc($USER_Func) Then Return SetError(1,1,'')
Local $hGUI = GUICreate("User Func")
Local $button = GUICtrlCreateButton("Start Func",122,25)
GUISetState( )
While 1
$sMsg = GUIGetMsg()
Switch $sMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
Local $Execute_User_Func = $USER_Func; Le boutton est censé appeller la fonction en paramètre
EndSwitch
WEnd
EndFunc ;=====> FonctionUtilisateur($USER_Func)
; #FUNCTION# ====================================================================================================================
; Name ..........: Msg_USER
; Description ...: Fonction servant d'exemple : à mettre en paramètre dans une autre fonction
; Syntax ........: Msg_USER($iMsg)
; Parameters ....: $iMsg - an integer value.
; ===============================================================================================================================
Func Msg_USER($iMsg)
MsgBox($MB_SYSTEMMODAL,'',$iMsg )
EndFunc ;====> Msg_USER($iMsg)