Hi Leute,
ich versteh nicht wieso ich in Zeile 34 untenstehende Fehlermeldung bekomme:
Global $oOnEventDict = ObjCreate("Scripting.Dictionary")
$oOnEventDict.CompareMode = 1 ; set to textmode
; #FUNCTION# ====================================================================================================================
; Name...........: GUICtrlSetOnEventEx
; Description ...: Calls a user-defined function with parameter, if control was clicked
; Syntax.........: GUICtrlSetOnEventEx($controlID, $Function = Default, $aParameter = Default)
; Parameters ....: $controlID - control id
; $Function - function name as string
; $aParameter - parameter as one dimensional array, list or variable
; Author ........: Zeitriss
; ===============================================================================================================================
Func GUICtrlSetOnEventEx($controlID, $Function = Default, $aParam = Default, $OutputFormat = 0)
If $Function <> Default Then
Local $Data[2]
If $aParam = Default Then
$Data[1] = ""
Else
If IsObj($aParam) Then Local $aParameter = $aParam.ToArray ; convert list to array
If Not IsArray($aParam) And Not IsObj($aParam) Then ;Local $aParameter[1] = [$aParam] ; if param is var
Local $aParameter[1] = [$aParam]
EndIf
ReDim $aParameter[Ubound($aParameter)+1]
For $i = Ubound($aParameter)-2 to 0 step -1
$aParameter[$i+1] = $aParameter[$i]
Next
$aParameter[0] = "CallArgArray"
$Data[1] = $aParameter
EndIf
$Data[0] = $Function
If $oOnEventDict.Exists(String($controlID)) Then $oOnEventDict.remove(String($controlID))
$oOnEventDict.add(String($controlID), $Data)
;Global $oOnEventDict = ObjCreate("Scripting.Dictionary"); wenn ich hier auskommentiere, dann gehts
$oOnEventDict.add("test", "1")
; if no parameter is assigned
If $aParam = Default Then
GUICtrlSetOnEvent($controlID, $Data[0])
Return
EndIf
GUICtrlSetOnEvent($controlID, "GUICtrlSetOnEventBuffer")
Else
If $oOnEventDict.Exists(String($controlID)) Then $oOnEventDict.remove(String($controlID))
EndIf
EndFunc
Func GUICtrlSetOnEventBuffer()
MsgBox(0, "dfgd", "sdfsf")
If Not $oOnEventDict.Exists(String(@GUI_CtrlId)) Then Return
Local $Data = $oOnEventDict(String(@GUI_CtrlId))
;~ _ArrayDisplay($Data[1])
;~ MsgBox(0, "dfgd", VarGetType($Data))
;~ If $oOnEventDict.Item("Format") = 1 Then
;~ For $elem In $Data[1]
;~ $AList.Add($elem)
;~ ;~ MsgBox(0, "dsafsf", $elem)
;~ Next
;~ $AList.RemoveAt(0)
;~ Return Call($Data[0], $AList)
;~ EndIf
Call($Data[0], $Data[1])
EndFunc
Das ist eine Erweiterung der GuiCtrlSetOnEvent Funktion.Ich möchte nur ein Schlüssel/Wert Paar zum Dictionary hinzufügen, aber ich bekomme den Fehler:
"The requested action with this object has failed"
Wenn ich Zeile 33 auskommentiere geht es!
Hat jemand ne idee?
Danke!