Kleines Problem mit Variablen

  • Hallo,

    ich habe gerade ein kleines Script geschrieben, mit der man einzelne Codezeilen ausführen kann. Leider funktioniert das Deklarieren der Variablen nicht so ganz.

    Spoiler anzeigen
    [autoit]

    $Cmd = '$Form1 = GUICreate("Form2", 131, 79, 192, 124)' & @CRLF & _
    '$Button4 = GUICtrlCreateButton("Button1", 8, 8, 75, 25)' & @CRLF & _
    '$Button5 = GUICtrlCreateButton("Button2", 8, 40, 75, 25)' & @CRLF & _
    'GUISetState(@SW_SHOW)'

    [/autoit] [autoit][/autoit] [autoit]

    _PlugIn_ExecAll($Cmd)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "", $Form1) ; Wie komme ich an diese Variable dran?

    [/autoit] [autoit][/autoit] [autoit]

    Func _PlugIn_ExecLine($__CMD)
    If $__CMD <> "" Then
    $Split = StringSplit($__CMD, "=")
    If $Split[0] = 2 Then

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "", Execute($Split[2]))

    [/autoit] [autoit][/autoit] [autoit]

    Assign(StringTrimLeft(StringStripWS($Split[1], 2), 1), Execute($Split[2]))
    Else
    Execute($__CMD)
    EndIf
    EndIf
    EndFunc ;==>_PlugIn_ExecLine

    [/autoit] [autoit][/autoit] [autoit]

    Func _PlugIn_ExecAll($__CMD)
    $Split1 = StringSplit($__CMD, @CRLF)
    For $x = 1 To $Split1[0]
    _PlugIn_ExecLine($Split1[$x])
    Next
    EndFunc ;==>_PlugIn_ExecAll

    [/autoit]
    • Offizieller Beitrag

    Du solltest nur die Befehle (ohne ID-Variable) übergeben. Die ID's der erstellten Ctrls läßt du dir einfach in einem Array speichern.
    Übergib auch gleich ein Array, sparst du dir das Splitten.

    [autoit]

    Local $Cmd[4] = [ _
    'GUICreate("Form2", 131, 79, 192, 124)', _
    'GUICtrlCreateButton("Button1", 8, 8, 75, 25)', _
    'GUICtrlCreateButton("Button2", 8, 40, 75, 25)', _
    'GUISetState(@SW_SHOW)']

    [/autoit][autoit][/autoit][autoit]

    $getID = _PlugIn_ExecAll($Cmd)
    Sleep(1000)
    GUISetState(@SW_MAXIMIZE, $getID[0])
    Sleep(1000)
    GUISetState(@SW_RESTORE, $getID[0])

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "ID Form2", $getID[0])

    [/autoit][autoit][/autoit][autoit]

    Func _PlugIn_ExecAll($__CMD)
    Local $ret_ID[UBound($__CMD)]
    For $x = 0 To UBound($__CMD) -1
    $ret_ID[$x] = Execute($__CMD[$x])
    Next
    Return $ret_ID
    EndFunc ;==>_PlugIn_ExecAll

    [/autoit]