SoftCreator - 2tes Problem

  • Hallo Leute,
    schon wieder ein Problem mit meinem SoftCreator:
    ich bin jetzt grade bei der "Ausführen"-Funktion. Nicht wundern: Die Funktionen für die ListView-Einträge in der ListView links, sind noch nicht definiert. Daher die vielen Errors...

    Code
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GuiStatusBar.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #Include <GuiEdit.au3>
    #include <Misc.au3>
    #include <Array.au3>
    Opt("GUIOnEventMode",1)
    ;Variablendefinitionen --------------------
    Global $pathcha = @ScriptDir&"\logfile.au3"
    Global $pathvar = @ScriptDir&"\varfile.ini"
    Global $toolwidth = 200
    Global $toolheight = 200
    Global $inspwidth = 500
    Global $inspheight = 200
    Global $toolguiname = "GUICreator"
    Global $winname
    Global $Winpos[4]
    Global $newGUI
    Global $text
    Global $numbercontrol = 0
    Global $control[99]
    Global $conname[99]
    Global $contype[99]
    Global $conpos[99][4]
    Global $iVarNameControl
    Global $close
    Global $convarname
    Global $numberofcontrol
    Global $genGUI
    Global $farbeROT = 0xff0000
    Global $farbeORANGE = 0xff9900
    Global $farbeGRUEN = 0x000B200
    ;------------------------------------------
    ;Flag-Meldungstexte------------------------
    Global $okmsg = "OK-Meldung"&@CRLF&"**************"&@CRLF&"0 = Knopf ""OK"""&@CRLF&"1 = Knöpfe ""OK"" und ""Abbrechen"""&@CRLF&"2 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Ignorieren"""&@CRLF&"3 = Knöpfe ""Ja"" und ""Nein"" und ""Abrechen"""&@CRLF&"4 = Knöpfe ""Ja"" und ""Nein"""&@CRLF&"5 = Knöpfe ""Wiederholen"" und ""Abbrechen"""&@CRLF&"6 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Weiter"""
    Global $errmsg = "**************"&@CRLF&"Fehler-Meldung"&@CRLF&"*****************"&@CRLF&"16 = Knopf ""OK"""&@CRLF&"17 = Knöpfe ""OK"" und ""Abbrechen"""&@CRLF&"18 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Ignorieren"""&@CRLF&"19 = Knöpfe ""Ja"" und ""Nein"" und ""Abbrechen"""&@CRLF&"20 = Knöpfe ""Ja"" und ""Nein"""&@CRLF&"21 = Knöpfe ""Wiederholen"" und ""Abbrechen"""&@CRLF&"22 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Weiter"""
    Global $askmsg = "*****************"&@CRLF&"Frage-Meldung"&@CRLF&"*****************"&@CRLF&"32 = Knopf ""OK"""&@CRLF&"33 = Knöpfe ""OK"" und ""Abbrechen"""&@CRLF&"34 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Ignorieren"""&@CRLF&"35 = Knöpfe ""Ja"" und ""Nein"" und ""Abbrechen"""&@CRLF&"36 = Knöpfe ""Ja und ""Nein"""&@CRLF&"37 = Knöpfe ""Wiederholen"" und ""Abbrechen"""&@CRLF&"38 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Weiter"""
    Global $warmsg = "*****************"&@CRLF&"Warnung-Meldung"&@CRLF&"********************"&@CRLF&"48 = Knopf ""OK"""&@CRLF&"49 = Knöpfe ""OK"" und ""Abbrechen"""&@CRLF&"50 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Ignorieren"""&@CRLF&"51 = Knöpfe ""Ja"" und ""Nein"" und ""Abbrechen"""&@CRLF&"52 = Knöpfe ""Ja und ""Nein"""&@CRLF&"53 = Knöpfe ""Wiederholen"" und ""Abbrechen"""&@CRLF&"54 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Weiter"""
    Global $infmsg = "Info-Meldung"&@CRLF&"***************"&@CRLF&"64 = Knopf ""OK"""&@CRLF&"65 = Knöpfe ""OK"" und ""Abbrechen"""&@CRLF&"66 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Ignorieren"""&@CRLF&"67 = Knöpfe ""Ja"" und ""Nein"" und ""Abbrechen"""&@CRLF&"68 = Knöpfe ""Ja und ""Nein"""&@CRLF&"69 = Knöpfe ""Wiederholen"" und ""Abbrechen"""&@CRLF&"70 = Knöpfe ""Abbrechen"" und ""Wiederholen"" und ""Weiter"""
    ;------------------------------------------
    IniDelete($pathvar,"var")
    IniDelete($pathvar,"details")
    IniWrite($pathvar, "details","starting","yes")
    IniWrite($pathvar, "details","starting infos",@HOUR&":"&@MIN&":"&@SEC&", "&@MDAY&"."&@MON&"."&@YEAR)
    ;Hauptgui-----------------------
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("SoftCreator 1.0 - Erstelle deine eigenen Windows-Anwendungen!", 623, 600, -1, -1)
    $controls = GUICtrlCreateGroup("Befehle", 8, 24, 201, 470)
    $comlist = GUICtrlCreateListView("Befehle", 16, 40, 185, 445)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 181)
    Global $com[18]
    $com[0] = GUICtrlCreateListViewItem("@error setzen", $comlist)
    $com[1] = GUICtrlCreateListViewItem("Aus Datei lesen", $comlist)
    $com[2] = GUICtrlCreateListViewItem("In Datei schreiben", $comlist)
    $com[3] = GUICtrlCreateListViewItem("Beschriftungstext ändern", $comlist)
    $com[4] = GUICtrlCreateListViewItem("Externes Programm starten", $comlist)
    $com[5] = GUICtrlCreateListViewItem("Falls-Schleife", $comlist)
    $com[6] = GUICtrlCreateListViewItem("Fenstertitel ändern", $comlist)
    $com[7] = GUICtrlCreateListViewItem("INI-Datei lesen", $comlist)
    $com[8] = GUICtrlCreateListViewItem("INI-Datei schreiben", $comlist)
    $com[9] = GUICtrlCreateListViewItem("Maus zu Position schicken", $comlist)
    $com[10] = GUICtrlCreateListViewItem("Mauscursor ändern", $comlist)
    $com[11] = GUICtrlCreateListViewItem("Meldung anzeigen", $comlist)
    $com[12] = GUICtrlCreateListViewItem("Sound abspielen", $comlist)
    $com[13] = GUICtrlCreateListViewItem("Sound pausieren", $comlist)
    $com[14] = GUICtrlCreateListViewItem("Sound stoppen", $comlist)
    $com[15] = GUICtrlCreateListViewItem("Variable hinzufügen", $comlist)
    $com[16] = GUICtrlCreateListViewItem("Warten", $comlist)
    $com[17] = GUICtrlCreateListViewItem("Loop-Schleife", $comlist)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $end = GUICtrlCreateGroup("Skript", 216, 24, 401, 470)
    $focuslabel = GUICtrlCreateLabel("Focus", 259, 330, 48, 16)
    $script = GUICtrlCreateListView("Skript", 224, 40, 385, 445)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 381)
    $script_0 = GUICtrlCreateListViewItem("//Start des Skriptes", $script)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $guicreatoropen = GUICtrlCreateButton("GUICreator öffnen", 8, 0, 105, 25, $WS_GROUP)
    $msgflagsopen = GUICtrlCreateButton("Meldung-Flag-Referenz", 120, 0, 139, 25, $WS_GROUP)
    $close = GUICtrlCreateButton("Beenden", 544, 0, 75, 25, $WS_GROUP)
    $info = GUICtrlCreateButton("Info/Hilfe", 464, 0, 75, 25, $WS_GROUP)
    $toau3 = GUICtrlCreateButton("Exportieren", 321, 0, 79, 25, $WS_GROUP)
    $console = GUICtrlCreateEdit("", 8, 500, 609, 97, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL,$ES_READONLY))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetData(-1, ">Gestartet um "&@HOUR&":"&@MIN&":"&@SEC&" am "&@MDAY&"."&@MON&"."&@YEAR&@CRLF)
    GUICtrlSetColor(-1, $farbeGRUEN)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_cls")
    GUICtrlSetOnEvent($close, "_cls")
    GUICtrlSetOnEvent($guicreatoropen, "_open")
    GUICtrlSetOnEvent($msgflagsopen, "_msgflagsopen")
    ;ToolGUI------------------------
    Global $guicreator = GUICreate($toolguiname, $toolwidth, $toolheight, 815,5)
    Global $newwinbut = guictrlcreatebutton("Neues Fenster", 0, 0, $toolwidth/2, $toolheight/5)
    Global $delwinbut = guictrlcreatebutton("Fenster löschen", $toolwidth/2, 0, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $newinputbut = guictrlcreatebutton("Neuer Input", 0, $toolheight/5, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $newlabelbut = guictrlcreatebutton("Neuer Label", $toolwidth/2, $toolheight/5, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $newbutbut = guictrlcreatebutton("Neuer Button", 0, $toolheight/5*2, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $newradiobut = guictrlcreatebutton("Neuer Radiobutton", $toolwidth/2, $toolheight/5*2, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $undobut = guictrlcreatebutton("Rückgängig", 0, $toolheight/5*3, $toolwidth/2, $toolheight/5)
    Global $savebut = guictrlcreatebutton("Fertig", $toolwidth/2, $toolheight/5*3, $toolwidth/2, $toolheight/5)
    guictrlsetstate(-1, $GUI_DISABLE)
    Global $infobut = GUICtrlCreateButton("Informationen", 0, $toolheight/5*4, $toolwidth/2, $toolheight/5)
    Global $exitbut = GUICtrlCreateButton("Beenden", $toolwidth/2, $toolheight/5*4, $toolwidth/2, $toolheight/5)
    guisetstate(@SW_HIDE)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_clsguicrt")
    ;Inspektor-----------------------------
    Global $inspektorgui = guicreate("Inspektor", $inspwidth, $inspheight, 5,5)
    Global $changeslist = guictrlcreatelistview("Name|Typ|X-Koord.|Y-Koord.|Breite|Höhe", 0,0, $inspwidth, $inspheight)
    Global $item = guictrlcreatelistviewitem(" | | | | | ", -1)
    guisetstate(@SW_HIDE)
    guisetonevent($GUI_EVENT_CLOSE, "_clsguicrt")
    ;Events---------------------------------
    GUICtrlSetOnEvent($exitbut, "_clsguicrt")
    GUICtrlSetOnEvent($newwinbut, "_testwin")
    GUICtrlSetOnEvent($delwinbut, "_delwin")
    GUICtrlSetOnEvent($savebut, "_saveau3")
    GUICtrlSetOnEvent($newinputbut, "_newinput")
    GUICtrlSetOnEvent($newbutbut, "_newbut")
    GUICtrlSetOnEvent($newlabelbut, "_newlabel")
    GUICtrlSetOnEvent($newradiobut, "_newradio")
    GUICtrlSetOnEvent($undobut, "_undo")
    GUICtrlSetOnEvent($info, "_info")
    ;~ GUICtrlSetOnEvent($com[0], "_com0")
    ;~ GUICtrlSetOnEvent($com[1], "_com1")
    ;~ GUICtrlSetOnEvent($com[2], "_com2")
    ;~ GUICtrlSetOnEvent($com[3], "_com3")
    ;~ GUICtrlSetOnEvent($com[4], "_com4")
    ;~ GUICtrlSetOnEvent($com[5], "_com5")
    ;~ GUICtrlSetOnEvent($com[6], "_com6")
    ;~ GUICtrlSetOnEvent($com[7], "_com7")
    ;~ GUICtrlSetOnEvent($com[8], "_com8")
    ;~ GUICtrlSetOnEvent($com[9], "_com9")
    ;~ GUICtrlSetOnEvent($com[10], "_com10")
    ;~ GUICtrlSetOnEvent($com[11], "_com11")
    ;~ GUICtrlSetOnEvent($com[12], "_com12")
    ;~ GUICtrlSetOnEvent($com[13], "_com13")
    ;~ GUICtrlSetOnEvent($com[14], "_com14")
    ;~ GUICtrlSetOnEvent($com[15], "_com15")
    ;~ GUICtrlSetOnEvent($com[16], "_com16")
    ;~ GUICtrlSetOnEvent($com[17], "_com17")
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _cls()
    Case $info
    MsgBox(64,"Info/Hilfe","INFO"&@CRLF&"*****"&@CRLF&"Dieses Programm wurde mit AutoIt3 erstellt und von <button421> auf autoit.de programmiert!"&@CRLF&"HILFE"&@CRLF&"******"&@CRLF&"Einfach mit GUICreator ein Windows-Fenster zusammenbasteln und dann programmieren: Einfach Aktion und Befehle in der linken Liste auswählen! Daten eingeben und auf ""OK"" klicken! Dann ist der Befehl in der rechten Liste eingetragen!")
    Case $com[0]
    MsgBox(0,"","")
    EndSwitch
    WEnd

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

    Func _cls()
    $questionexit = MsgBox(36, "Beenden?","Es sind noch offene Projekte aktiv! Wollen sie wirklich beenden?")
    If $questionexit = 6 Then
    Exit
    Else
    ;Nix
    EndIf
    EndFunc

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

    Func _open()
    GUISetState(@SW_SHOW, $guicreator)
    GUISetState(@sW_SHOW, $inspektorgui)
    EndFunc

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

    Func _clsguicrt()
    GUISetState(@SW_HIDE, $guicreator)
    GUISetState(@SW_HIDE, $inspektorgui)
    GUISetState(@SW_HIDE, $newGUI)
    EndFunc

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

    while 2
    if _ispressed(02) then
    $cmsg = GUIGetCursorInfo()
    if not @error and IsArray($cmsg) Then
    if winactive($winname) Then
    if $cmsg[4] = 0 Then
    GUICtrlSetData($item, $Winname&"|"&"GUI"&"|"&$Winpos[0]&"|"&$winpos[1]&"|"&$Winpos[2]&"|"&$Winpos[3])
    EndIf
    For $y = 2 to $numbercontrol
    if $cmsg[0] > $conpos[$y][0] and $cmsg[0] < $conpos[$y][0]+$conpos[$y][2] and $cmsg[1] > $conpos[$y][1] and $cmsg[1] < $conpos[$y][1]+$conpos[$y][3] Then
    GUICtrlSetData($item, $conname[$y]&"|"&$contype[$y]&"|"&$conpos[$y][0]&"|"&$conpos[$y][1]&"|"&$conpos[$y][2]&"|"&$conpos[$y][3])
    EndIf
    Next
    EndIf
    EndIf
    Do
    Until not _ispressed(02)
    sleep(40)
    EndIf
    WEnd
    Func _newinput()
    _newcontrol(0)
    EndFunc
    Func _newbut()
    _newcontrol(1)
    EndFunc
    Func _newlabel()
    _newcontrol(2)
    EndFunc
    Func _newradio()
    _newcontrol(3)
    EndFunc

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

    Func _gethelp()
    MsgBox(0, "Hilfe", "Zum Erstellen eines neuen Fensters einfach auf 'Neues Fenster' drücken."&@CRLF&"Dort den gewünschten Namen eingeben und das Fenster durch Bewegen mit der Maus positionieren. Anschliessend einfach klicken."&@CRLF&@TAB&"ACHTUNG: Nachfolgendes Verschieben hat keinen Effekt mehr auf die festgelegte Position!"&@CRLF&"Die Größe des Fensters durch Bewegen mit der Maus definieren. Anschliessend einfach klicken."&@CRLF&"Erst dann können die vier zur Auswahl stehenden Controls auf die gleiche Weise erstellt werden."&@CRLF&"Mit Rechtsklick auf das jeweilige Control lassen sich die Werte im Inspektor ansehen."&@CRLF&" "&@CRLF&"Wenn das GUI fertig erstellt ist, einfach auf 'Als *.au3 speichern' klicken, und den gewünschten Speicherort/namen eingeben.")
    EndFunc
    Func _getinfo()
    if $winname <> "" Then
    $infotext = ""
    $infotext = $infotext&"Aktueller GUI-Titel: "&$Winname&@CRLF
    $infotext = $infotext&"Anzahl der Controls: "&$numbercontrol-1&@CRLF
    $infotext = $infotext&@TAB&"Einzelinformationen: "&@CRLF
    for $z = 2 to $numbercontrol
    $infotext = $infotext&@TAB&@TAB&$z-1&"."&@CRLF
    $infotext = $infotext&@TAB&@TAB&"Name: "&$conname[$z]&@CRLF
    Switch $contype[$z]
    Case 0
    $infotext = $infotext&@TAB&@TAB&"Typ: "&"Input"&@CRLF
    Case 1
    $infotext = $infotext&@TAB&@TAB&"Typ: "&"Button"&@CRLF
    Case 2
    $infotext = $infotext&@TAB&@TAB&"Typ: "&"Label"&@CRLF
    Case 3
    $infotext = $infotext&@TAB&@TAB&"Typ: "&"Radiobutton"&@CRLF
    EndSwitch
    $infotext = $infotext&@TAB&@TAB&"Abmessungen: X-Pos.: "&$conpos[$z][0]&" Y-Pos.: "&$conpos[$z][1]&" Länge: "&$conpos[$z][2]&" Höhe: "&$conpos[$z][3]&@CRLF
    $infotext = $infotext&@TAB&@TAB&" "&@CRLF
    Next
    MsgBox(0, "Informationen", $infotext)
    Else
    MsgBox(0, "Informationen", "Noch kein Fenster erstellt.")
    EndIf
    EndFunc

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

    Func _testwin()
    if $winname <> "" Then
    $del = MsgBox(4, "Altes GUI", "Altes GUI überschreiben?")
    if $del = 6 then
    guidelete($newGUI)
    $numbercontrol = 0
    _newwin()
    EndIf
    Else
    _newwin()
    EndIf

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

    EndFunc

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

    Func _newwin()
    $Winname = inputbox("Neues Fenster", "1. Geben sie den Fenster-Namen ein."&@CRLF&"2. Positionieren sie das Fenster."&@CRLF&"3. Verändern sie die Größe des Fensters.")
    if $Winname <> "" Then
    $newGUI = GUICreate($winname, 150, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_clsguicrt")
    guisetstate()
    while not _ispressed(01)
    $mousepos = mousegetpos()
    $winpos = wingetpos($Winname)
    winmove($winname, "", $mousepos[0]-150, $mousepos[1]-170)
    ToolTip($winpos[0]&"/"&$winpos[1], $mousepos[0], $mousepos[1])
    sleep(40)
    WEnd
    $winpos = wingetpos($Winname)
    while _ispressed(01)
    WEnd
    _MouseTrap($winpos[0]+50, $winpos[1]+10, @Desktopwidth, @Desktopheight)
    while not _ispressed(01)
    $mousepos = mousegetpos()
    $winpos = wingetpos($Winname)
    winmove($winname, "",$winpos[0], $winpos[1] , $mousepos[0]-($winpos[0]-20), $mousepos[1]-($winpos[1]-20))
    ToolTip($winpos[2]&"/"&$winpos[3]-20, $mousepos[0], $mousepos[1])
    sleep(40)
    WEnd
    _mousetrap()
    ToolTip("")
    $numbercontrol = 1
    $winpos = wingetpos($Winname)
    guictrlsetstate($delwinbut, $GUI_ENABLE)
    guictrlsetstate($savebut, $GUI_ENABLE)
    guictrlsetstate($newinputbut, $GUI_ENABLE)
    guictrlsetstate($newlabelbut, $GUI_ENABLE)
    guictrlsetstate($newbutbut, $GUI_ENABLE)
    guictrlsetstate($newradiobut, $GUI_ENABLE)
    Else
    _removevar()
    EndIf
    EndFunc

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

    Func _newcontrol($type)
    $numbercontrol += 1
    $convarname = InputBox("Neues Control","Geben sie den Variablennamen ein!") ;Variablenabfrage!
    $conname[$numbercontrol] = inputbox("Neues Control", "1. Geben sie den Control-Namen ein."&@CRLF&"2. Positionieren sie das Control."&@CRLF&"3. Verändern sie die Größe des Controls.")
    ;~ IniWrite($pathvar,"var","var"&+$numberofcontrol,$convarname)
    if $conname[$numbercontrol] <> "" Then
    $contype[$numbercontrol] = $type
    while _ispressed(01)
    WEnd
    $actpos = wingetpos($Winname)
    mousemove($actpos[0]+$winpos[2]/2, $actpos[1]+$actpos[3]/2, 0)
    switch $type
    Case 0
    $control[$numbercontrol] = guictrlcreateinput($conname[$numbercontrol], 0, 0, 100, 30)
    Case 1
    $control[$numbercontrol] = guictrlcreatebutton($conname[$numbercontrol], 0, 0, 100, 30)
    Case 2
    $control[$numbercontrol] = guictrlcreatelabel($conname[$numbercontrol], 0, 0, 100, 30)
    Case 3
    $control[$numbercontrol] = GUICtrlCreateRadio($conname[$numbercontrol], 0, 0, 100, 30)
    EndSwitch
    _mousetrap($actpos[0]+1, $actpos[1]+30, $actpos[0]+$actpos[2], $actpos[1]+$actpos[3])
    While not _ispressed(01)
    $mousepos = mousegetpos()
    guictrlsetpos($control[$numbercontrol], $mousepos[0]-$actpos[0]-101, $mousepos[1]-$actpos[1]-51)
    sleep(40)
    WEnd
    $tempconpos = controlgetpos($Winname, "", $control[$numbercontrol])
    $conpos[$numbercontrol][0] = $tempconpos[0]
    $conpos[$numbercontrol][1] = $tempconpos[1]
    while _ispressed(01)
    WEnd
    _mousetrap($conpos[$numbercontrol][0]+$actpos[0]+5, $conpos[$numbercontrol][1]+$actpos[1]+30, $actpos[0]+$actpos[2], $actpos[1]+$actpos[3])
    $actpos = wingetpos($Winname)
    While not _ispressed(01)
    $mousepos = mousegetpos()
    guictrlsetpos($control[$numbercontrol], $conpos[$numbercontrol][0], $conpos[$numbercontrol][1], $mousepos[0]-($actpos[0]+$conpos[$numbercontrol][0]), $mousepos[1]-($actpos[1]+$conpos[$numbercontrol][1]+20))
    sleep(40)
    WEnd
    _mousetrap()
    $tempconpos = controlgetpos($Winname, "", $control[$numbercontrol])
    $conpos[$numbercontrol][2] = $tempconpos[2]
    $conpos[$numbercontrol][3] = $tempconpos[3]
    Else
    $numbercontrol -= 1
    EndIf

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

    EndFunc

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

    Func _undo()
    if $numbercontrol > 1 Then
    guictrldelete($control[$numbercontrol])
    $conpos[$numbercontrol][0] = ""
    $conpos[$numbercontrol][1] = ""
    $conpos[$numbercontrol][2] = ""
    $conpos[$numbercontrol][3] = ""
    $conname[$numbercontrol] = ""
    $contype[$numbercontrol] = ""
    $numbercontrol -= 1
    Else
    MsgBox(64, "SoftCreator", "Nichts zu widerrufen!")
    EndIf
    EndFunc

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

    Func _saveau3()
    guisetstate(@SW_HIDE, $guicreator)
    guisetstate(@SW_HIDE, $newGUI)
    $fehler = 0
    $path = FileSaveDialog("Speichere *.au3...", @SCRIPTDIR&"\", "Autoit(*.au3)")
    if $path <> "" Then
    if stringright($path, 4) = ".au3" Then
    $newfile = fileopen($path, 10)
    if @error then $fehler = 1
    Else
    $path = $path&".au3"
    $newfile = fileopen($path, 10)
    if @error then $fehler = 1
    EndIf
    if not $fehler = 1 Then
    Global $genGUI = GUICreate("Erstelle Datei...", 300, 300, -1, $WS_EX_TOPMOST)
    $progress = guictrlcreateprogress(0, 20, 300, 50)
    GUICtrlCreateLabel("Aktuell: ", 0, 5, 40, 15)
    $aktuelllabel = guictrlcreatelabel("", 40, 5, 260, 15)
    $edit = guictrlcreateedit("Starte speichern...", 0, 75, 300, 195)
    guisetstate()
    $text = ""
    guictrlsetdata($aktuelllabel, "Erstelle Kopf...")
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Erstelle Kopf...")
    $text = $text&"#include <GUIConstantsEx.au3>"&@CRLF
    $text = $text&"#include <WindowsConstants.au3>"&@CRLF
    guictrlsetdata($progress, 1)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Abgeschlossen!")
    guictrlsetdata($aktuelllabel, "Erstelle GUI...")
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Erstelle GUI...")
    $text = $text&"$Form = GUICreate('"&$winname&"',"&$winpos[2]&","&$winpos[3]-20&","&$winpos[0]&","&$winpos[1]&")"&@CRLF
    guictrlsetdata($progress, 50)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Abgeschlossen!")
    guictrlsetdata($aktuelllabel, "Lade GUIControls...")
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Lade GUIControls...")
    For $x = 2 to $numbercontrol
    switch $contype[$x]
    Case 0
    $text = $text&"$"&$convarname&" = guictrlcreateinput('"&$conname[$x]&"', "&$conpos[$x][0]&", "&$conpos[$x][1]&", "&$conpos[$x][2]&", "&$conpos[$x][3]&")"&@CRLF
    Case 1
    $text = $text&"$"&$convarname&" = guictrlcreatebutton('"&$conname[$x]&"', "&$conpos[$x][0]&", "&$conpos[$x][1]&", "&$conpos[$x][2]&", "&$conpos[$x][3]&")"&@CRLF
    Case 2
    $text = $text&"$"&$convarname&" = guictrlcreatelabel('"&$conname[$x]&"', "&$conpos[$x][0]&", "&$conpos[$x][1]&", "&$conpos[$x][2]&", "&$conpos[$x][3]&")"&@CRLF
    Case 3
    $text = $text&"$"&$convarname&" = GUICtrlCreateRadio('"&$conname[$x]&"', "&$conpos[$x][0]&", "&$conpos[$x][1]&", "&$conpos[$x][2]&", "&$conpos[$x][3]&")"&@CRLF
    EndSwitch
    Next
    $text = $text&"GUISetState(@SW_SHOW)"&@CRLF
    $text = $text&" "&@CRLF
    guictrlsetdata($progress, 90)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Abgeschlossen!")
    guictrlsetdata($aktuelllabel, "Erstelle notwendigen Code...")
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Erstelle notwendigen Code...")
    $text = $text&"While 1"&@CRLF
    $text = $text&@TAB&"$Msg = guigetmsg()"&@CRLF
    $text = $text&@TAB&"Switch $msg"&@CRLF
    $text = $text&@TAB&@TAB&"Case $GUI_EVENT_CLOSE"&@CRLF
    $text = $text&@TAB&@TAB&@TAB&"exit"&@CRLF
    $text = $text&@TAB&"Endswitch"&@CRLF
    $text = $text&"WEnd"&@CRLF
    guictrlsetdata($progress, 100)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Abgeschlossen!")
    guictrlsetdata($progress, 0)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Speichern...")
    guictrlsetdata($aktuelllabel, "Speichere...")
    FileWrite($newfile, $text)
    if not @error Then
    guictrlsetdata($progress, 100)
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Datei erfolgreich erstellt!")
    guictrlsetdata($aktuelllabel, "Erfolgreich abgeschlossen!")
    $readybut = guictrlcreatebutton("Fertig", 250, 270, 50, 30)
    GUICtrlSetOnEvent($readybut, "_ready")
    Else
    MsgBox(0, "Error", "Ein Fehler beim Erstellen der Datei ist aufgetreten.")
    guictrlsetdata($aktuelllabel, "Fehlerbedingter Abbruch!")
    guictrlsetdata($edit, guictrlread($edit)&@CRLF&"Ein Fehler ist aufgetreten!")
    $readybut = guictrlcreatebutton("Fertig", 250, 270, 50, 30)
    GUICtrlSetOnEvent($readybut, "_ready")
    EndIf

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

    Else
    MsgBox(0, "Error", "Ein Fehler beim Erstellen der Datei ist aufgetreten.")
    EndIf

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

    Else
    guisetstate(@SW_SHOW, $guicreator)
    guisetstate(@SW_SHOW, $newGUI)
    EndIf

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

    Endfunc

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

    Func _ready()
    guisetstate(@SW_HIDE, $genGUI)
    GUIDelete($genGUI)
    guisetstate(@SW_SHOW, $guicreator)
    guisetstate(@SW_SHOW, $newGUI)
    EndFunc

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

    Func _delwin()
    $del = MsgBox(4, "Altes GUI", "Altes GUI wirklich löschen?")
    if $del = 6 then
    guidelete($newGUI)
    _removevar()
    EndIf
    EndFunc

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

    Func _removevar()
    $winname = ""
    $numbercontrol = 0
    guictrlsetdata($item, " | | | | | ")
    guictrlsetstate($delwinbut, $GUI_DISABLE)
    guictrlsetstate($savebut, $GUI_DISABLE)
    guictrlsetstate($newinputbut, $GUI_DISABLE)
    guictrlsetstate($newlabelbut, $GUI_DISABLE)
    guictrlsetstate($newbutbut, $GUI_DISABLE)
    guictrlsetstate($newradiobut, $GUI_DISABLE)
    EndFunc

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

    Func _exit()
    if $winname <> "" Then
    $close = MsgBox(4, "Wirklich beenden?", "Es existiert noch ein neu erstelltes Fenster. Wirklich beenden?")
    if $close = 6 Then Exit
    Else
    Exit
    EndIf

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

    EndFunc

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

    Func _info()
    MsgBox(64,"Info/Hilfe","INFO"&@CRLF&"*****"&@CRLF&"Dieses Programm wurde mit AutoIt3 erstellt und von <button421> auf autoit.de programmiert!"&@CRLF&"HILFE"&@CRLF&"******"&@CRLF&"Einfach mit GUICreator ein Windows-Fenster zusammenbasteln und dann programmieren: Einfach Aktion und Befehle in der linken Liste auswählen! Daten eingeben und auf ""OK"" klicken! Dann ist der Befehl in der rechten Liste eingetragen!")
    EndFunc

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

    Func _msgflagsopen()
    MsgBox(64,"Flags",$okmsg&@CRLF&$errmsg&@CRLF&$askmsg&@CRLF&$warmsg&@CRLF&""&@CRLF&"Klicke ""OK"" um weiterzugehen")
    MsgBox(64, "Flags", $infmsg)
    EndFunc

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

    Func _run()
    For $Aktion In $com
    $sCommand = StringSplit($Aktion, ";", 2)
    Switch $sCommand[0]
    Case "@error" ;@error setzen
    $aErrorCode = StringSplit($sCommand[1], ",", 2)
    SetError($aErrorCode)
    Case "FileRead" ;Aus Datei Lesen
    $aPathRead = StringSplit($sCommand[1], ";", 2)
    $sLoadedFile = FileRead($aPathRead[0])
    Case "FileWrite" ;In Datei Schreiben
    $aParam = StringSplit($sCommand[1], ",", 2)
    FileWrite($aParam[0], $aParam[1])
    Case "LabelText" ;Beschriftungstext ändern
    $aParam = StringSplit($sCommand[1],",",2)
    GUICtrlSetData($aParam[0], $aParam[1])
    Case "Run" ;Externes Programm starten
    $aRunPath = StringSplit($sCommand[1], ";", 2)
    Run($aRunPath)
    Case "If" ;Falls-Schleife
    $aParam = StringSplit($sCommand[1], ",", 2)
    If $aParam[1] = "=" Then ;Falls-Schleife mit =-Methode
    If $aParam[0] = $aParam[2] Then
    ;Hier müssten dann die Aktionen unter dem Eintrag in der ListView ausgeführt werden
    EndIf
    EndIf
    If $aParam[1] = "<" Then ;Falls-Schleife mit <-Methode
    If $aParam[0] < $aParam[2] Then
    ;Hier müssten dann die Aktionen unter dem Eintrag in der ListView ausgeführt werden
    EndIf
    EndIf
    If $aParam[1] = ">" Then ;Falls-Schleife mit >-Methode
    If $aParam[0] > $aParam[2] Then
    ;Hier müssten dann die Aktionen unter dem Eintrag in der ListView ausgeführt werden
    EndIf
    EndIf
    If $aParam[1] = "Not" Then ;Falls-Schleife mit Nicht-Methode
    If $aParam[0] Not $aParam[2] Then
    ;Hier müssten dann die Aktionen unter dem Eintrag in der ListView ausgeführt werden
    EndIf
    EndIf
    EndSwitch
    Next
    EndFunc
    ;---------------------------------- Funktionen der Commands ------------------------------

    [/autoit]


    Ab Zeile 526 fängt das Krisengebiet meines Problems an.
    Und zwar: die Aktionen in der If müssen die sein, die in der rechten ListView unter dem If-Eintrag stehen. Damit ihr die GUI trotzdem sehen könnt, habe ich die GUICtrlSetOnEvents für die ListView-Einträge links auskommentiert. Da kommen immernoch Fehler mit der If bei "Not" (Zeile 544 bis 546). Geht einfach in SciTE auf Continune anyway!

    Danke

    MfG button421

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Zitat

    die Aktionen in der If müssen die sein, die in der rechten ListView unter dem If-Eintrag stehen.

    Da weiß ich leider nicht was du meinst ^^
    Kannst du das was genauer beschreiben?

  • also: es gibt links und rechts eine ListView. In der linken stehen alle möglichen Befehle zur Verfügung, die man dann per Mausklick in die rechte Skript-ListView bringen soll. Dort steht das ganze "Programm". Es gibt nun in der linken ListView, wo alle möglichen Befehle drin stehen, einen Eintrag der heißt "Falls-Schleife". Wenn man da drauf klickt, soll sich eine GUI öffnen in der man $aParam[0] ,$aParam[1] und $aParam[2] eingeben kann.
    $aParam[0] = Variable hinter dem If im Code
    $aParam[1] = Methode (also =,<,>,Not)
    $aParam[2] = Variable hinter der Methode

    Klickt man in dieser GUI auf "OK", schließt sich die GUI und in der rechten Skript-ListView soll dann der Eintrag

    Falls "Eingegebener Parameter 1" Gleich, Nicht, größer als, kleiner als (Parameter 2) "Eingegebener Parameter 3" ist, dann

    Falls Ende

    Dabei muss im AutoIt-Code doch auch eine If sein, die das abfragt, was man festgelegt hat (Das Problemgebiet ist ab Zeile 526). Aber irgendein Befehl muss lesen, was unter dem Falls-Eintrag in der ListView steht, und zwar bis "Falls Ende". Das muss er dann wieder in einen String umwandeln, sodass AutoIt es ausführen kann.

    Ich hoffe das hast du verstanden

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • was du machen könntest, wäre noch ein weiteres Feld (Falls-Schleife ENDE) in der Linken Listview, die das ganze beendet.
    Wenn du das nicht machst, wären keine verschachtelten If´s möglich.

  • Ok, aber dann bleibt immer noch meine Frage, wie ich dann das, was unter Falls in der rechten ListView steht, in die If im Code reinkrieg... Soll der Code sich vielleicht merken, was für eine Arraynummer von $aktionen[] merken, und alles was mehr als die gemerkte Arraynummer ist (bis Falls-Ende) in die Code-If reinschreiben?

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

    2 Mal editiert, zuletzt von button421 (1. August 2011 um 11:41)