WM 2010

  • Guten Tag,

    Ein Arbeitskollege hat mich gefragt ob ich was für ihn machen könnte.. und zwar folgendes!

    Zur WM 2010, will er sowas wie ein Wettprogramm haben..
    so jetzt GUI halbwegs fertig... jetzt wenn man auf Optionen geht, und Mannschaften eintragen, kommt man in ein Fenster, wo ein Edit Feld ist.
    Das Edit Feld, lässt die Mannschaften von der Mannschaften.txt aus.. und zeigt sie an.. jetzt will ich wenn man mit der Maus in das Edit Feld klickt, das die eine Mannschaft markiert wird, und das ich damit arbeiten kann, so wie bei Windows

    [Blockierte Grafik: http://www.telewerkstatt.at/Bilder/Tipps/win_explorer_ordner_01.jpg]

    in dem Beispiel der Ordner MSOCache!!

    anbei mein Code: (etwas unübersichtlich)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <editconstants.au3>
    #Include <File.au3>
    #include <array.au3>
    #include <GuiEdit.au3>

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 100) ;0=no resizing, <1024 special resizing
    #EndRegion Opt

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

    #region GUI

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

    $gui = GUICreate("WM 2010", 600, 480, 100,100)

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

    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)

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

    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem ("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem ("Wetten", $optionen)
    $info1 = GUICtrlCreateMenuItem ("Hilfe", $info)

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

    $button1 = GUICtrlCreateButton("Test", 30, 30, 50, 30)

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

    GUISetState(@SW_SHOW)
    #EndRegion GUI

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

    _txterstellen()

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

    #Region Main
    While 1
    $msg = GUIGetMsg()
    select
    case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    case $msg = $button1
    _msg()
    case $msg = $eintragen
    _gui2()
    case $msg = $info1
    _info()
    case $msg = $gruppen
    _info()
    case $msg = $wetten
    _info()
    case $msg = $beenden
    ExitLoop
    EndSelect
    WEnd
    #EndRegion Main

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

    func _msg()
    msgbox(1,"Test","Arsch")
    EndFunc

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

    func _gui2()
    #region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 400, 300, 200, 200)

    $2button1= GUICtrlCreateButton("Eintragen", 20, 250, 100, 30) ;Eintragen
    $2button2= GUICtrlCreateButton("Entfernen", 150, 250, 100, 30) ;Entfernen
    $2button3= GUICtrlCreateButton("Umbenennen", 280, 250, 100, 30) ;Umbenennen
    $2button4= GUICtrlCreateButton("Speichern und Zurück", 0, 0, 400, 30) ;Speichern und Zurück

    $2input1 = GUICtrlCreateInput("",230, 50, 150, 20)
    GUISetFont(12, 10)
    $2label1 = GUICtrlCreateLabel("Namen eingeben", 50, 50, 130, 20)
    GUISetFont(0)

    $2edit1 = GUICtrlCreateEdit("", 20, 90, 360, 140, BitOR($ES_WANTRETURN, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY))
    GUISetState(@sw_show)
    #endregion GUI2

    $zeilen = _FileCountLines("Mannschaften.txt")
    for $x = 1 to $zeilen Step 1
    $read1 = FileReadLine("Mannschaften.txt", $x)
    _GUICtrlEdit_AppendText($2edit1, $read1 & @CRLF)
    Next

    While 1
    $1msg = GUIGetMsg()
    select
    case $1msg = $GUI_EVENT_CLOSE
    ExitLoop
    case $1msg = $2button1 ;Eintragen
    _eintragen()
    case $1msg = $2button2 ;Entfernen
    _entfernen()
    case $1msg = $2button3 ;Umbenennen
    _umbenennen()
    case $1msg = $2button4 ;Speichern und Zurück
    _speichern()
    EndSelect
    WEnd


    EndFunc

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

    func _txterstellen()
    ;TXT Datei erstellen
    If Not FileOpen("Mannschaften.txt" , 9) Then

    MsgBox(4096,"Error", " Datei konnte nicht erstellt werden error:" & @error)

    EndIf
    ;Ende Txt Datei erstellen
    EndFunc

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

    func _info()
    MsgBox(1,"Info","created by Maximilian")
    EndFunc

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

    func _eintragen()
    msgbox(1,"Eintragen","Eintragen")
    EndFunc

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

    func _entfernen()
    msgbox(1,"Entfernen","Entfernen")
    EndFunc

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

    func _umbenennen()
    msgbox(1,"Umbenennen","Umbenennen")
    EndFunc

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

    func _speichern()
    msgbox(1,"Speichern","Speichern")
    EndFunc

    [/autoit]

    Da ich Neuling bin kommt mir diese Aufgabe wie gerufen!

    2 Mal editiert, zuletzt von Madmaxx89 (12. Juni 2009 um 10:15)

    • Offizieller Beitrag

    Deine Screenshot ist kein Editfeld sondern ein TreeView .

  • ja das weiss ich auch.. =)

    aber wenn ich in dem edit Feld eine Zeile oder ein Land anklicke würde ich dieses gerne makiert haben?

    Ist das überhaupt Möglich mit einem Edit Feld?

  • Hallo Madmaxx89,

    schau dich doch mal bei den verschiedenen Editoren die mit dem Edit-Steuerelement arbeiten um, z.B:
    https://autoit.de/index.php?page…93613#post93613,
    https://autoit.de/index.php?page…92221#post92221
    dann wirst du erkennen was möglich ist oder nicht. Ich würde dir zu ListView-Steuerelement raten, da du hier jede Spalte einer Zeile bearbeiten kannst, siehe Beispiel von BugFix: ListView - Editieren aller SubItemsAuch das Tab-Steuerelement könnte nützlich sein,

    mfg (Auto)Bert

  • Jop würde ich dir auch raten und um es ein bisschen übersichtlicher zu machen am besten einmal Strg+T drücken ;)
    Und wenn man bei deiner 2. GUI auf den "X" knopf drückst also es schließen willst dann schließt sich das ganze Programm deswegen würde ich es so machen wie es im Spoiler ist (außer es ist gewollt was ich nicht denke^^) achja hab auch mal in deine 2. gui ein List-View gemacht, das die Mannschaften in deiner Text datei anzeigt^^

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <editconstants.au3>
    #include <File.au3>
    #include <array.au3>
    #include <GuiEdit.au3>

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

    Global $Mannschaften = @ScriptDir & "\Mannschaften.txt"

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 100) ;0=no resizing, <1024 special resizing
    #EndRegion Opt

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

    #Region GUI 1
    $gui1 = GUICreate("WM 2010", 600, 480, 100, 100)
    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)
    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem("Wetten", $optionen)
    $info1 = GUICtrlCreateMenuItem("Hilfe", $info)
    $button1 = GUICtrlCreateButton("Test", 30, 30, 50, 30)
    GUISetState(@SW_SHOW)
    #EndRegion GUI 1

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

    #Region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 330, 240, 201, 201)
    GUISetFont(0, 400, 0, "MS Sans Serif")
    $button_eintragen = GUICtrlCreateButton("Eintragen", 172, 98, 100, 30, 0)
    $button_entfernen = GUICtrlCreateButton("Entfernen", 172, 138, 100, 30, 0)
    $button_umbenennen = GUICtrlCreateButton("Umbenennen", 172, 178, 100, 30, 0)
    $button_speichern = GUICtrlCreateButton("Speichern und Zurück", 0, 0, 304, 30, 0)
    $input = GUICtrlCreateInput("", 150, 50, 150, 24)
    GUISetFont(12, 10)
    $label = GUICtrlCreateLabel("Namen eingeben", 26, 50, 106, 20)
    GUISetFont(0)
    $List = GUICtrlCreateList("", 24, 80, 137, 150)
    GUISetState(@SW_HIDE)
    #EndRegion GUI2

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

    _txterstellen()

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

    #Region Main
    While 1
    $msg = GUIGetMsg(1)

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

    Switch $msg[1] ;Wenn du es nicht so machst dann schließt sich dein ganzes Programm wenn du bei der 2. gui auf den "X" knopf drückst^^

    Case $gui1 ;Alles was bei der 1. GUI ist.

    Switch $msg[0] ;Bei Switch muss man nicht immer "$msg =" schreiben.
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1
    _msg()
    Case $eintragen
    GUISetState(@SW_SHOW, $gui2) ;Die 2. Gui wird gezeigt.
    $zeilen = _FileCountLines($Mannschaften)
    For $x = 1 To $zeilen Step 1
    $read1 = FileReadLine($Mannschaften, $x)
    GUICtrlSetData($List, $read1 & "|")
    Next
    Case $info1
    _info()
    Case $gruppen
    _info()
    Case $wetten
    _info()
    Case $beenden
    Exit
    EndSwitch

    Case $gui2 ;Alles was bei der 2. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui2) ;Die 2. Gui wird wieder geschlossen.
    EndSwitch
    EndSwitch
    WEnd
    #EndRegion Main

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

    Func _txterstellen()
    ;TXT Datei erstellen
    If Not FileOpen("Mannschaften.txt", 9) Then

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

    MsgBox(4096, "Error", " Datei konnte nicht erstellt werden error:" & @error)

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

    EndIf
    ;Ende Txt Datei erstellen
    EndFunc ;==>_txterstellen

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

    Func _msg()
    MsgBox(1, "Test", "Arsch")
    EndFunc ;==>_msg

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

    Func _info()
    MsgBox(1, "Info", "created by Maximilian")
    EndFunc ;==>_info

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

    Func _eintragen()
    MsgBox(1, "Eintragen", "Eintragen")
    EndFunc ;==>_eintragen

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

    Func _entfernen()
    MsgBox(1, "Entfernen", "Entfernen")
    EndFunc ;==>_entfernen

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

    Func _umbenennen()
    MsgBox(1, "Umbenennen", "Umbenennen")
    EndFunc ;==>_umbenennen

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

    Func _speichern()
    MsgBox(1, "Speichern", "Speichern")
    EndFunc ;==>_speichern

    [/autoit]

    MfG xXTobi93Xx

  • Ich halte mich jetzt mal an die Überarbeitete Version von XXTobi93XX.. Dankeschön!

    Hat jetzt jemand vll einen Vorschlag für die Funktionen _hinzufügen, _entfernen, _speichern, _umbenennen ??

    Danke!

  • Hallo Madmaxx89,

    ja lies die Hilfe zu den Steuerelementen die du benutzen willst. Als (angehender) Systeminformatiker mit Programmiererfahrung in CPP und C solltest du das gewohnt sein. Ein weiterer Tipp, benutze von Anfang an die Listview, auch wenn du im Moment nur 1 Spalte benötigst. Eine Listview kann man ohne viel Arbeit um Spalten erweitern eine List(Box) ist star. Ausserdem ist die Listview meines Erachtens nach leichter zu handhaben,

    mfg (Auto)Bert

    • Offizieller Beitrag

    Voralledingen gibt es massig Beispiele zum Thema ListView hier im Forum oder im Englischen Forum .

  • Ich muss auch mal mitmischen!
    Zu mehr hatte ich jetzt kein bock!

    Spoiler anzeigen
    [autoit]

    #Include <GuiListBox.au3>
    #include <Misc.au3>
    Opt("GUICloseOnESC", 0)
    $gui = GUICreate("WM 2010", 600, 480, 100,100)

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

    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)

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

    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem ("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem ("Wetten", $optionen)
    $info1 = GUICtrlCreateMenuItem ("Hilfe", $info)

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

    #region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 400, 300, 200, 200)

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

    $2button1= GUICtrlCreateButton("Eintragen", 20, 250, 100, 30) ;Eintragen
    $2button2= GUICtrlCreateButton("Entfernen", 150, 250, 100, 30) ;Entfernen
    $2button3= GUICtrlCreateButton("Umbenennen", 280, 250, 100, 30) ;Umbenennen
    $2button4= GUICtrlCreateButton("Speichern und Zurück", 0, 0, 400, 30) ;Speichern und Zurück

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

    $2input1 = GUICtrlCreateInput("",230, 50, 150, 20)
    GUISetFont(12, 10)
    $2label1 = GUICtrlCreateLabel("Namen eingeben", 50, 50, 130, 20)
    GUISetFont(0)

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

    $2edit1 = _GUICtrlListBox_Create ($gui2,"", 20, 90, 360, 140)

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

    $EDITGUI = GUICreate ("",350,20,0,0,0x80800000,0x00000008)
    $EDITINPUT = GUICtrlCreateInput ("",1,1,348,18)
    GUISetState(@sw_show,$gui)
    #endregion GUI2

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

    #EndRegion GUI

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

    _txterstellen()

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

    #Region Main
    While 1
    Switch GUIGetMsg()
    case -3
    ExitLoop
    case $eintragen
    _gui2()
    case $info1
    _info()
    case $gruppen
    _info()
    case $wetten
    _info()
    case $beenden
    ExitLoop
    EndSwitch
    WEnd
    #EndRegion Main

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

    func _msg()
    msgbox(1,"Test","*****")
    EndFunc

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

    func _gui2()
    GUISetState(@SW_SHOW,$gui2)

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

    While 1

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

    Switch GUIGetMsg()
    case -3
    Exit
    case $2button1 ;Eintragen
    _eintragen()
    case $2button2 ;Entfernen
    _entfernen()
    case $2button3 ;Umbenennen
    _umbenennen()
    case $2button4 ;Speichern und Zurück
    _speichern()
    EndSwitch
    WEnd

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

    EndFunc

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

    func _txterstellen()
    ;TXT Datei erstellen

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

    ;Ende Txt Datei erstellen
    EndFunc

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

    func _info()
    MsgBox(1,"Info","created by Maximilian")
    EndFunc

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

    func _eintragen()
    Local $Text
    $Text = GUICtrlRead ($2input1)
    If $Text <> "" Then
    _GUICtrlListBox_AddString ($2edit1,$Text)
    EndIf
    EndFunc

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

    func _entfernen()
    msgbox(1,"Entfernen","Entfernen")
    EndFunc

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

    func _umbenennen()
    Local $Text,$Index,$Pos,$Pos2
    $Index = _GUICtrlListBox_GetCurSel($2edit1)
    $Text = _GUICtrlListBox_GetText($2edit1, $Index)
    If $Text <> "" Then
    GUICtrlSetData ($EDITINPUT,$Text)
    $tRect = _GUICtrlListBox_GetItemRectEx($2edit1, $Index)
    $Pos = WinGetPos ($gui2)
    $Pos2 = ControlGetPos ($gui2,"",$2edit1)
    WinMove ($EDITGUI,"",DllStructGetData($tRect, "Left") + $Pos[0] + $Pos2[0]+5,DllStructGetData($tRect, "Top")+ $Pos[1] + $Pos2[1]+30)
    GUISetState (@SW_SHOW,$EDITGUI)
    While 1
    If WinActive ($gui) Or WinActive ($Gui2) Then
    WinActivate ($gui2)
    WinActivate ($EDITGUI)
    EndIf
    Sleep (50)
    If _IsPressed ("1B") Then
    ExitLoop
    ElseIf _IsPressed ("0D") Then
    $Text = GUICtrlRead ($EDITINPUT)
    If $Text <> "" Then
    _GUICtrlListBox_ReplaceString($2edit1, $Index, $Text)
    EndIf
    EndIf
    Wend
    GUISetState (@SW_HIDE,$EDITGUI)
    EndIf
    EndFunc

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

    func _speichern()
    msgbox(1,"Speichern","Speichern")
    EndFunc

    [/autoit]

    mfg. Jam00

  • wie könnte ich das speichern der Mannschaften auslagern, also entweder eint .txt oder .ini, was wäre besser, oder leichter mit umzugehen?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <editconstants.au3>
    #include <File.au3>
    #include <array.au3>
    #include <GuiEdit.au3>
    #include<StaticConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<ListViewConstants.au3>
    #include<StructureConstants.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <GUIListBox.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;Ich weiss nicht welche includes ich brauche :-/

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

    Global $Mannschaften = @ScriptDir & "\Mannschaften.ini"

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 0) ;0=no resizing, <1024 special resizing
    #EndRegion Opt

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

    #Region GUI 1
    $gui1 = GUICreate("WM 2010", 600, 480, 100, 100)
    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)
    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem("Wetten", $optionen)
    $admin = GUICtrlCreateMenuItem("Adminrechte", $optionen)
    $hilfe1 = GUICtrlCreateMenuItem("Hilfe", $info)
    GUISetState(@SW_SHOW)
    #EndRegion GUI 1

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

    #Region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 330, 240, 201, 201)
    GUISetFont(0, 400, 0, "MS Sans Serif")
    $button_eintragen = GUICtrlCreateButton("Eintragen", 172, 98, 100, 30, 0)
    $button_entfernen = GUICtrlCreateButton("Entfernen", 172, 138, 100, 30, 0)
    $button_umbenennen = GUICtrlCreateButton("Umbenennen", 172, 178, 100, 30, 0)
    $button_speichern = GUICtrlCreateButton("Speichern und Zurück", 0, 0, 330, 30, 0)
    $input = GUICtrlCreateInput("", 150, 50, 150, 24)
    GUISetFont(12, 10)
    $label = GUICtrlCreateLabel("Namen eingeben", 26, 50, 106, 20)
    GUISetFont(0)
    $List = GUICtrlCreateList("", 10, 90, 150, 130)
    GUISetState(@SW_HIDE)
    #EndRegion GUI2

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

    #Region GUI3
    $gui3 = GUICreate("Gruppeneditor", 500, 400, 200, 180)
    #EndRegion GUI3

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

    #Region GUI4
    $gui4 = GUICreate("Wetten", 500, 400, 200, 180)
    #EndRegion GUI4

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

    #Region GUI5
    $gui5 = GUICreate("Einloggen", 500, 400, 200, 180)
    #EndRegion GUI5

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

    #Region Main
    While 1
    $msg = GUIGetMsg(1)

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

    Switch $msg[1] ;Wenn du es nicht so machst dann schließt sich dein ganzes Programm wenn du bei der 2. gui auf den "X" knopf drückst^^

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

    Case $gui1 ;Alles was bei der 1. GUI ist.

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

    Switch $msg[0] ;Bei Switch muss man nicht immer "$msg =" schreiben.
    Case $GUI_EVENT_CLOSE
    Exit
    Case $eintragen ;GUI 2
    GUISetState(@SW_SHOW, $gui2) ;Die 2. Gui wird gezeigt
    Case $hilfe1
    _info()
    Case $gruppen
    GUISetState(@SW_SHOW, $gui3) ;Die 3. Gui wird gezeigt.
    Case $wetten
    GUISetState(@SW_SHOW, $gui4) ;Die 3. Gui wird gezeigt.
    Case $admin
    GUISetState(@SW_SHOW, $gui5) ;Die 3. Gui wird gezeigt.
    Case $beenden
    Exit
    EndSwitch

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

    Case $gui2 ;Alles was bei der 2. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui2) ;Die 2. Gui wird wieder geschlossen.
    FileClose($Mannschaften)
    _GUICtrlListBox_ResetContent($List)
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui3 ;Alles was bei der 3. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui3) ;Die 3. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui4 ;Alles was bei der 4. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui4) ;Die 4. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui5 ;Alles was bei der 5. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui5) ;Die 5. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch

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

    EndSwitch
    WEnd
    #EndRegion Main

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

    #Region Funcs GUI1
    Func _txterstellen()
    ;TXT Datei erstellen
    If Not FileOpen($Mannschaften, 9) Then

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

    MsgBox(4096, "Error", " Datei konnte nicht erstellt werden error:" & @error)
    EndIf
    $zeilen = _FileCountLines($Mannschaften)
    For $x = 0 To $zeilen Step 2
    $line = FileReadLine($Mannschaften, $x)
    _GUICtrlListBox_AddString($List, $line)
    Next
    ;Ende Txt Datei erstellen
    EndFunc ;==>_txterstellen

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

    Func _info()
    MsgBox(1, "Info", "")
    EndFunc ;==>_info

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

    #EndRegion Funcs GUI1
    ;;
    #Region Funcs GUI2
    Func _entfernen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    _GUICtrlListBox_DeleteString($List, $index)
    IniDelete($Mannschaften,"Mannschaften " & $index)

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

    EndFunc ;==>_entfernen

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

    Func _umbenennen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    GUICtrlSetData($input, $gettext)
    _GUICtrlListBox_DeleteString($list,$index)
    EndFunc ;==>_umbenennen

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

    Func _speichern()
    _GUICtrlListBox_ResetContent($List)
    GUISetState(@SW_HIDE, $gui2)
    GUISetState(@SW_SHOW, $gui1)

    EndFunc ;==>_speichern

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

    Func _eintragen()
    $count = _GUICtrlListBox_GetCount($List) + 1
    IniWriteSection($Mannschaften, "Mannschaft " & $count, GUICtrlRead($input))
    _GUICtrlListBox_AddString($List, GUICtrlRead($input))
    GUICtrlSetData($input, "")
    EndFunc ;==>_eintragen
    #EndRegion Funcs GUI2
    ;;
    #Region Funcs GUI3

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

    #EndRegion Funcs GUI3
    ;;
    #Region Funcs GUI4

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

    #EndRegion Funcs GUI4
    ;;
    #Region Funcs GUI5

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

    #EndRegion Funcs GUI5

    [/autoit]

    Danke

  • okay also ini dateien!

    also soll ich da eine section machen [mannschaften] oder für jede mannschaft eine section [mannschaft 1], [mannschaft 2],

    könntest evtl a bissl helfen?

  • Hallo Madmaxx89

    wie könnte ich das speichern der Mannschaften auslagern, also entweder eint .txt oder .ini, was wäre besser, oder leichter mit umzugehen?
    .....
    Danke

    Ich würde bei dieser Sache schon SQLite in Betracht ziehen und da es ja noch 1 Jahr Zeit hast kannst du dich da auch locker einlesen,

    mfg (auto)Bert

  • Guten Morgen,

    Also ja da ich noch Zeit hab, versuch ich es mal mit SQLite!
    Da hab ich schon ein kleines Problem, das mich aufregt!

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <editconstants.au3>
    #include <File.au3>
    #include <array.au3>
    #include <GuiEdit.au3>
    #include<StaticConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<ListViewConstants.au3>
    #include<StructureConstants.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <GUIListBox.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Local $sSQliteDll_Path = _SQLite_Startup() ; gibt den Pfad der SQlite.Dll zurück
    ; Lädt die SQLite.dll
    ; erfordert SQLite3.dll im @ScriptDir oder @SystemDir
    ; Wenn SQLite.dll.au3 included ist, wird die DLL im @SystemDir erstellt.
    ; Sollte das fehlschlagen, wird eine temporäre Datei erstellt, die mit _SQLite_Shutdown() gelöscht wird.
    Global $hSQL = _SQLite_Open(@ScriptDir & '\Mannschaften.db')

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

    If Not FileExists($hSQL) Then
    _sqltableerstellen()
    EndIf

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 100) ;0=no resizing, <1024 special resizing
    Opt("GUICloseOnESC", 1)

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

    #EndRegion Opt

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

    #Region GUI 1
    $gui1 = GUICreate("WM 2010", 600, 480, 100, 100)
    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)
    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem("Wetten", $optionen)
    $admin = GUICtrlCreateMenuItem("Adminrechte", $optionen)
    $info1 = GUICtrlCreateMenuItem("Hilfe", $info)
    GUISetState(@SW_SHOW)
    #EndRegion GUI 1

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

    #Region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 330, 240, 201, 201, BitOR($WS_EX_TOPMOST, $WS_MINIMIZEBOX))
    GUISetFont(0, 400, 0, "MS Sans Serif")
    $button_eintragen = GUICtrlCreateButton("Eintragen", 172, 98, 100, 30, 0)
    $button_entfernen = GUICtrlCreateButton("Entfernen", 172, 138, 100, 30, 0)
    $button_umbenennen = GUICtrlCreateButton("Umbenennen", 172, 178, 100, 30, 0)
    $button_speichern = GUICtrlCreateButton("Speichern und Zurück", 0, 0, 330, 30, 0)
    $input = GUICtrlCreateInput("", 150, 50, 150, 24)
    GUISetFont(12, 10)
    $label = GUICtrlCreateLabel("Namen eingeben", 26, 50, 106, 20)
    GUISetFont(0)
    $List = GUICtrlCreateList("", 10, 90, 150, 130,BitOR($WS_VSCROLL, $LBS_NOTIFY, $LVS_SHOWSELALWAYS))
    GUISetState(@SW_HIDE)
    #EndRegion GUI2

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

    #Region GUI3
    $gui3 = GUICreate("Gruppeneditor", 500, 400, 200, 180)
    #EndRegion GUI3

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

    #Region GUI4
    $gui4 = GUICreate("Wetten", 500, 400, 200, 180)
    #EndRegion GUI4

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

    #Region GUI5
    $gui5 = GUICreate("Einloggen", 500, 400, 200, 180)
    #EndRegion GUI5

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

    #Region Main
    While 1
    $msg = GUIGetMsg(1)

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

    Switch $msg[1] ;Wenn du es nicht so machst dann schließt sich dein ganzes Programm wenn du bei der 2. gui auf den "X" knopf drückst^^

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

    Case $gui1 ;Alles was bei der 1. GUI ist.

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

    Switch $msg[0] ;Bei Switch muss man nicht immer "$msg =" schreiben.
    Case $GUI_EVENT_CLOSE
    Exit
    Case $eintragen
    GUISetState(@SW_SHOW, $gui2) ;Die 2. Gui wird gezeigt.
    GUISetState(@SW_DISABLE, $gui1)
    GUISetState(@SW_RESTORE, $gui2)

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

    Case $info1
    _info()
    Case $gruppen
    GUISetState(@SW_SHOW, $gui3) ;Die 3. Gui wird gezeigt.
    Case $wetten
    GUISetState(@SW_SHOW, $gui4) ;Die 3. Gui wird gezeigt.
    Case $admin
    GUISetState(@SW_SHOW, $gui5) ;Die 3. Gui wird gezeigt.
    Case $beenden
    Exit
    EndSwitch

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

    Case $gui2 ;Alles was bei der 2. GUI ist.
    Switch $msg[0]
    Case $button_eintragen
    _eintragen()
    _sqleintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    _sqlspeichern()
    EndSwitch
    Case $gui3 ;Alles was bei der 3. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui3) ;Die 3. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui4 ;Alles was bei der 4. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui4) ;Die 4. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui5 ;Alles was bei der 5. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui5) ;Die 5. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch

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

    EndSwitch
    WEnd
    #EndRegion Main

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

    #Region Funcs GUI1

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

    Func _info()
    MsgBox(1, "Info", "created by Maximilian")
    EndFunc ;==>_info

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

    #EndRegion Funcs GUI1
    ;;
    #Region Funcs GUI2
    Func _entfernen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_entfernen

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

    Func _umbenennen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    GUICtrlSetData($input, $gettext)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_umbenennen

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

    Func _speichern()
    GUISetState(@SW_ENABLE, $gui1)
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2) ;Die 2. Gui wird wieder geschlossen.
    EndFunc ;==>_speichern

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

    Func _eintragen()
    _GUICtrlListBox_AddString($List, GUICtrlRead($input))
    GUICtrlSetData($input, "")
    EndFunc ;==>_eintragen

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

    Func _sqlBeenden($msg)
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit MsgBox(0, 'Ende', $msg)
    EndFunc ;==>_sqlBeenden

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

    Func _sqltableerstellen()
    $strCREATE = _
    "CREATE TABLE [Mannschaften] (" & _
    "[id] INTEGER KEY," & _
    "[team] VARCHAR[50] NULL," & _
    "[gruppe] VARCHAR[3] NULL)"
    If _SQLite_Exec($hSQL, $strCREATE) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler CREATE')
    EndIf
    EndFunc ;==>_sqltableerstellen

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

    Func _sqleintragen()
    $count = _GUICtrlListBox_GetCount($List) -1
    For $x = 0 To $count Step 1
    $temp = _GUICtrlListBox_GetText($List, $x)
    $strINSERT = _
    "INSERT INTO Mannschaften VALUES (" &$x& ", '" & $temp &"', '');"
    If _SQLite_Exec($hSQL, $strINSERT) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler INSERT')
    EndIf
    Next
    EndFunc ;==>_sqleintragen

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

    Func _sqlspeichern()
    _GUICtrlListBox_ResetContent($List)

    EndFunc
    #EndRegion Funcs GUI2
    ;;

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

    #Region Funcs GUI3

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

    #EndRegion Funcs GUI3
    ;;
    #Region Funcs GUI4

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

    #EndRegion Funcs GUI4
    ;;
    #Region Funcs GUI5

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

    #EndRegion Funcs GUI5;### Tidy Error -> func is never closed in your script.

    [/autoit]

    und zwar wenn ich das Programm ausführe, erstellt er die DB Mannschaften, beende ich das Programm, und starte es erneut, bringt er mir einen Fehler das die DB und Tabelle Mannschaften schon existiert!! wie kann ich das verhindern??
    ich hab auch schon if file exists probiert..

    und wenn die funktion _sqleintragen aufgerufen wird, und drei Elemente in der ListBox sind, wird das erste Element dreimal in DB geschrieben, das zweite Element zweimal und das Dritte einmal!! Wieso?

    Danke schonmal.. =)

    2 Mal editiert, zuletzt von Madmaxx89 (12. Juni 2009 um 12:01)

  • Hallo Madmaxx89,

    Hier entsteht das Problem:

    [autoit]

    Global $hSQL = _SQLite_Open(@ScriptDir & '\Mannschaften.db')

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

    If Not FileExists($hSQL) Then
    _sqltableerstellen()
    EndIf

    [/autoit]


    $hSQL = DB-Handle das von _SQLite_Open zurückgegeben wurde, FileExist erwartet aber eine Pfadangabe. Du könntest das ganze so so lösen,

    [autoit]

    Global $hdbPath = @ScriptDir & '\Mannschaften.db'
    Global $hSQL = _SQLite_Open($hdbPath)

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

    If Not FileExists($hSQL) Then
    _sqltableerstellen()
    else
    ;Befehle zum öffnen ohne anlegen hier einfügen
    EndIf

    [/autoit]


    Dies hab ich hier online erstellt, sollte dir den Lösungsansatz erleichtern,

    mfg (Auto)Bert

  • So wird jetzt schon ma überprüft ob die SQL existiert

    Spoiler anzeigen
    [autoit]

    #include<ListViewConstants.au3>
    #include<WindowsConstants.au3>
    #include <GUIListBox.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Local $sSQliteDll_Path = _SQLite_Startup() ; gibt den Pfad der SQlite.Dll zurück
    ; Lädt die SQLite.dll
    ; erfordert SQLite3.dll im @ScriptDir oder @SystemDir
    ; Wenn SQLite.dll.au3 included ist, wird die DLL im @SystemDir erstellt.
    ; Sollte das fehlschlagen, wird eine temporäre Datei erstellt, die mit _SQLite_Shutdown() gelöscht wird.
    If Not FileExists(@ScriptDir & '\Mannschaften.db') Then
    _sqltableerstellen()
    EndIf
    Global $hSQL = _SQLite_Open(@ScriptDir & '\Mannschaften.db')

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 100) ;0=no resizing, <1024 special resizing
    Opt("GUICloseOnESC", 1)

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

    #EndRegion Opt

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

    #Region GUI 1
    $gui1 = GUICreate("WM 2010", 600, 480, 100, 100)
    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)
    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem("Wetten", $optionen)
    $admin = GUICtrlCreateMenuItem("Adminrechte", $optionen)
    $info1 = GUICtrlCreateMenuItem("Hilfe", $info)
    GUISetState(@SW_SHOW)
    #EndRegion GUI 1

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

    #Region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 330, 240, 201, 201, BitOR($WS_EX_TOPMOST, $WS_MINIMIZEBOX))
    GUISetFont(0, 400, 0, "MS Sans Serif")
    $button_eintragen = GUICtrlCreateButton("Eintragen", 172, 98, 100, 30, 0)
    $button_entfernen = GUICtrlCreateButton("Entfernen", 172, 138, 100, 30, 0)
    $button_umbenennen = GUICtrlCreateButton("Umbenennen", 172, 178, 100, 30, 0)
    $button_speichern = GUICtrlCreateButton("Speichern und Zurück", 0, 0, 330, 30, 0)
    $input = GUICtrlCreateInput("", 150, 50, 150, 24)
    GUISetFont(12, 10)
    $label = GUICtrlCreateLabel("Namen eingeben", 26, 50, 106, 20)
    GUISetFont(0)
    $List = GUICtrlCreateList("", 10, 90, 150, 130,BitOR($WS_VSCROLL, $LBS_NOTIFY, $LVS_SHOWSELALWAYS))
    GUISetState(@SW_HIDE)
    #EndRegion GUI2

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

    #Region GUI3
    $gui3 = GUICreate("Gruppeneditor", 500, 400, 200, 180)
    #EndRegion GUI3

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

    #Region GUI4
    $gui4 = GUICreate("Wetten", 500, 400, 200, 180)
    #EndRegion GUI4

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

    #Region GUI5
    $gui5 = GUICreate("Einloggen", 500, 400, 200, 180)
    #EndRegion GUI5

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

    #Region Main
    While 1
    $msg = GUIGetMsg(1)

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

    Switch $msg[1] ;Wenn du es nicht so machst dann schließt sich dein ganzes Programm wenn du bei der 2. gui auf den "X" knopf drückst^^

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

    Case $gui1 ;Alles was bei der 1. GUI ist.

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

    Switch $msg[0] ;Bei Switch muss man nicht immer "$msg =" schreiben.
    Case $GUI_EVENT_CLOSE
    Exit
    Case $eintragen
    GUISetState(@SW_SHOW, $gui2) ;Die 2. Gui wird gezeigt.
    GUISetState(@SW_DISABLE, $gui1)
    GUISetState(@SW_RESTORE, $gui2)

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

    Case $info1
    _info()
    Case $gruppen
    GUISetState(@SW_SHOW, $gui3) ;Die 3. Gui wird gezeigt.
    Case $wetten
    GUISetState(@SW_SHOW, $gui4) ;Die 3. Gui wird gezeigt.
    Case $admin
    GUISetState(@SW_SHOW, $gui5) ;Die 3. Gui wird gezeigt.
    Case $beenden
    Exit
    EndSwitch

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

    Case $gui2 ;Alles was bei der 2. GUI ist.
    Switch $msg[0]
    Case $button_eintragen
    _eintragen()
    _sqleintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    _sqlspeichern()
    EndSwitch
    Case $gui3 ;Alles was bei der 3. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui3) ;Die 3. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui4 ;Alles was bei der 4. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui4) ;Die 4. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui5 ;Alles was bei der 5. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui5) ;Die 5. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch

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

    EndSwitch
    WEnd
    #EndRegion Main

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

    #Region Funcs GUI1

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

    Func _info()
    MsgBox(1, "Info", "created by Maximilian")
    EndFunc ;==>_info

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

    #EndRegion Funcs GUI1
    ;;
    #Region Funcs GUI2
    Func _entfernen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_entfernen

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

    Func _umbenennen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    GUICtrlSetData($input, $gettext)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_umbenennen

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

    Func _speichern()
    GUISetState(@SW_ENABLE, $gui1)
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2) ;Die 2. Gui wird wieder geschlossen.
    EndFunc ;==>_speichern

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

    Func _eintragen()
    _GUICtrlListBox_AddString($List, GUICtrlRead($input))
    GUICtrlSetData($input, "")
    EndFunc ;==>_eintragen

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

    Func _sqlBeenden($msg)
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit MsgBox(0, 'Ende', $msg)
    EndFunc ;==>_sqlBeenden

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

    Func _sqltableerstellen()
    $strCREATE = _
    "CREATE TABLE [Mannschaften] (" & _
    "[id] INTEGER KEY," & _
    "[team] VARCHAR[50] NULL," & _
    "[gruppe] VARCHAR[3] NULL)"
    If _SQLite_Exec($hSQL, $strCREATE) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler CREATE')
    EndIf
    EndFunc ;==>_sqltableerstellen

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

    Func _sqleintragen()
    $count = _GUICtrlListBox_GetCount($List) -1
    For $x = 0 To $count Step 1
    $temp = _GUICtrlListBox_GetText($List, $x)
    $strINSERT = _
    "INSERT INTO Mannschaften VALUES (" &$x& ", '" & $temp &"', '');"
    If _SQLite_Exec($hSQL, $strINSERT) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler INSERT')
    EndIf
    Next
    EndFunc ;==>_sqleintragen

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

    Func _sqlspeichern()
    _GUICtrlListBox_ResetContent($List)

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

    EndFunc
    #EndRegion Funcs GUI2
    ;;

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

    #Region Funcs GUI3

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

    #EndRegion Funcs GUI3
    ;;
    #Region Funcs GUI4

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

    #EndRegion Funcs GUI4
    ;;
    #Region Funcs GUI5

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

    #EndRegion Funcs GUI5;### Tidy Error -> func is never closed in your script.

    [/autoit]

    EDIT: Zu spät
    Du hattes viel zu viel inculde drin, die brauchtest du garnicht, hab ich mal aussortiert

    mfg. Jam00

  • Stimmt, ging nicht! hab jetzt behoben

    Spoiler anzeigen
    [autoit]

    #include<ListViewConstants.au3>
    #include<WindowsConstants.au3>
    #include <GUIListBox.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Local $sSQliteDll_Path = _SQLite_Startup() ; gibt den Pfad der SQlite.Dll zurück
    ; Lädt die SQLite.dll
    ; erfordert SQLite3.dll im @ScriptDir oder @SystemDir
    ; Wenn SQLite.dll.au3 included ist, wird die DLL im @SystemDir erstellt.
    ; Sollte das fehlschlagen, wird eine temporäre Datei erstellt, die mit _SQLite_Shutdown() gelöscht wird.
    $Exist = FileExists(@ScriptDir & '\Mannschaften.db')

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

    Global $hSQL = _SQLite_Open(@ScriptDir & '\Mannschaften.db')
    If $Exist = 0 Then _sqltableerstellen()

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

    #Region Opt
    Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled
    Opt("GUIResizeMode", 100) ;0=no resizing, <1024 special resizing
    Opt("GUICloseOnESC", 1)

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

    #EndRegion Opt

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

    #Region GUI 1
    $gui1 = GUICreate("WM 2010", 600, 480, 100, 100)
    $datei = GUICtrlCreateMenu("&Datei", -1)
    $optionen = GUICtrlCreateMenu("Optionen", -1)
    $info = GUICtrlCreateMenu("?", -1)
    $beenden = GUICtrlCreateMenuItem("Beenden", $datei)
    $eintragen = GUICtrlCreateMenuItem("Mannschaften eintragen", $optionen)
    $gruppen = GUICtrlCreateMenuItem("Gruppeneditor", $optionen)
    $wetten = GUICtrlCreateMenuItem("Wetten", $optionen)
    $admin = GUICtrlCreateMenuItem("Adminrechte", $optionen)
    $info1 = GUICtrlCreateMenuItem("Hilfe", $info)
    GUISetState(@SW_SHOW)
    #EndRegion GUI 1

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

    #Region GUI2
    $gui2 = GUICreate("Mannschaften eintragen", 330, 240, 201, 201, BitOR($WS_EX_TOPMOST, $WS_MINIMIZEBOX))
    GUISetFont(0, 400, 0, "MS Sans Serif")
    $button_eintragen = GUICtrlCreateButton("Eintragen", 172, 98, 100, 30, 0)
    $button_entfernen = GUICtrlCreateButton("Entfernen", 172, 138, 100, 30, 0)
    $button_umbenennen = GUICtrlCreateButton("Umbenennen", 172, 178, 100, 30, 0)
    $button_speichern = GUICtrlCreateButton("Speichern und Zurück", 0, 0, 330, 30, 0)
    $input = GUICtrlCreateInput("", 150, 50, 150, 24)
    GUISetFont(12, 10)
    $label = GUICtrlCreateLabel("Namen eingeben", 26, 50, 106, 20)
    GUISetFont(0)
    $List = GUICtrlCreateList("", 10, 90, 150, 130,BitOR($WS_VSCROLL, $LBS_NOTIFY, $LVS_SHOWSELALWAYS))
    GUISetState(@SW_HIDE)
    #EndRegion GUI2

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

    #Region GUI3
    $gui3 = GUICreate("Gruppeneditor", 500, 400, 200, 180)
    #EndRegion GUI3

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

    #Region GUI4
    $gui4 = GUICreate("Wetten", 500, 400, 200, 180)
    #EndRegion GUI4

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

    #Region GUI5
    $gui5 = GUICreate("Einloggen", 500, 400, 200, 180)
    #EndRegion GUI5

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

    #Region Main
    While 1
    $msg = GUIGetMsg(1)

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

    Switch $msg[1] ;Wenn du es nicht so machst dann schließt sich dein ganzes Programm wenn du bei der 2. gui auf den "X" knopf drückst^^

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

    Case $gui1 ;Alles was bei der 1. GUI ist.

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

    Switch $msg[0] ;Bei Switch muss man nicht immer "$msg =" schreiben.
    Case $GUI_EVENT_CLOSE
    Exit
    Case $eintragen
    GUISetState(@SW_SHOW, $gui2) ;Die 2. Gui wird gezeigt.
    GUISetState(@SW_DISABLE, $gui1)
    GUISetState(@SW_RESTORE, $gui2)

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

    Case $info1
    _info()
    Case $gruppen
    GUISetState(@SW_SHOW, $gui3) ;Die 3. Gui wird gezeigt.
    Case $wetten
    GUISetState(@SW_SHOW, $gui4) ;Die 3. Gui wird gezeigt.
    Case $admin
    GUISetState(@SW_SHOW, $gui5) ;Die 3. Gui wird gezeigt.
    Case $beenden
    Exit
    EndSwitch

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

    Case $gui2 ;Alles was bei der 2. GUI ist.
    Switch $msg[0]
    Case $button_eintragen
    _eintragen()
    _sqleintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    _sqlspeichern()
    EndSwitch
    Case $gui3 ;Alles was bei der 3. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui3) ;Die 3. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui4 ;Alles was bei der 4. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui4) ;Die 4. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch
    Case $gui5 ;Alles was bei der 5. GUI ist.
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $gui5) ;Die 5. Gui wird wieder geschlossen.
    Case $button_eintragen
    _eintragen()
    Case $button_entfernen
    _entfernen()
    Case $button_umbenennen
    _umbenennen()
    Case $button_speichern
    _speichern()
    EndSwitch

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

    EndSwitch
    WEnd
    #EndRegion Main

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

    #Region Funcs GUI1

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

    Func _info()
    MsgBox(1, "Info", "created by Maximilian")
    EndFunc ;==>_info

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

    #EndRegion Funcs GUI1
    ;;
    #Region Funcs GUI2
    Func _entfernen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_entfernen

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

    Func _umbenennen()
    $index = _GUICtrlListBox_GetCurSel($List)
    $gettext = _GUICtrlListBox_GetText($List, $index)
    GUICtrlSetData($input, $gettext)
    _GUICtrlListBox_DeleteString($List, $index)
    EndFunc ;==>_umbenennen

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

    Func _speichern()
    GUISetState(@SW_ENABLE, $gui1)
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2) ;Die 2. Gui wird wieder geschlossen.
    EndFunc ;==>_speichern

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

    Func _eintragen()
    _GUICtrlListBox_AddString($List, GUICtrlRead($input))
    GUICtrlSetData($input, "")
    EndFunc ;==>_eintragen

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

    Func _sqlBeenden($msg)
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit MsgBox(0, 'Ende', $msg)
    EndFunc ;==>_sqlBeenden

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

    Func _sqltableerstellen()
    $strCREATE = _
    "CREATE TABLE [Mannschaften] (" & _
    "[id] INTEGER KEY," & _
    "[team] VARCHAR[50] NULL," & _
    "[gruppe] VARCHAR[3] NULL)"
    If _SQLite_Exec($hSQL, $strCREATE) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler CREATE')
    EndIf
    EndFunc ;==>_sqltableerstellen

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

    Func _sqleintragen()
    $count = _GUICtrlListBox_GetCount($List) -1
    For $x = 0 To $count Step 1
    $temp = _GUICtrlListBox_GetText($List, $x)
    $strINSERT = _
    "INSERT INTO Mannschaften VALUES (" &$x& ", '" & $temp &"', '');"
    If _SQLite_Exec($hSQL, $strINSERT) <> $SQLITE_OK Then ; wenn Fehler
    _sqlBeenden('Fehler INSERT')
    EndIf
    Next
    EndFunc ;==>_sqleintragen

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

    Func _sqlspeichern()
    _GUICtrlListBox_ResetContent($List)

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

    EndFunc
    #EndRegion Funcs GUI2
    ;;

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

    #Region Funcs GUI3

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

    #EndRegion Funcs GUI3
    ;;
    #Region Funcs GUI4

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

    #EndRegion Funcs GUI4
    ;;
    #Region Funcs GUI5

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

    #EndRegion Funcs GUI5;### Tidy Error -> func is never closed in your script.

    [/autoit]

    mfg. Jam00