Problem bei ListView-Datenbank-Beispiel

  • Hallo an alle!

    Ich bin neu bei AutoIT un im diesem Forum. Ich bin vor ein paar Tagen auf ein Forum-Beitrag von 2011 aufmerksam geworden! Bei einem ListView-Datenbank-Beispiel vom Forum-Mitglied OSCAR habe ich ein paar Probleme. Ich wollte das Beispiel auf meine Bedürfnisse anpassen. Im großen und ganzen hat es auch funktioniert. Aber bei ein paar kleinigkeiten habe ich noch Probleme und Hoffe das mir einer von Euch weiter helfen kann.

    Als erstes ist hier das von mir leicht abgwandelte Beispiel

    [autoit]

    #include
    #include
    #include
    #include
    #include

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

    Global $sHeader = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener|Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
    Global $neuer_Eintrag = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener"
    Global $Eintragungen = "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
    Global $sDBFile = @ScriptDir & "\datenbank.txt"
    Global $iEdit = -1
    #region Hauptfenster
    Global $hGui = GUICreate("Fahrzeuge", 910, 480)
    GUISetBkColor(0xCCCCCC)
    Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
    Global $hLVHandle = GUICtrlGetHandle($hListView)
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Kp.", 30, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 1, "Y-Nummer", 120, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 2, "Gerät", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 3, "Ser.Nr.", 100, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 4, "Bediener", 100, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 5, "Letzte TMP", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 6, "BGV A3 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 7, "BGV D8 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 8, "BGV D36 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 9, "TDv 023/024 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 10, "BGR 500 am", 80, 0)
    Global $hSearchListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
    GUICtrlSetState(-1, $GUI_HIDE)
    Global $hSearchLVHandle = GUICtrlGetHandle($hSearchListView)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 0, "Kp.", 30, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 1, "Y-Nummer", 120, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 2, "Gerät", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 3, "Ser.Nr.", 100, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 4, "Bediener", 100, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 5, "Letzte TMP", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 6, "BGV A3 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 7, "BGV D8 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 8, "BGV D36 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 9, "TDv 023/024 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 10, "BGR 500 am", 80, 0)
    GUICtrlCreateLabel("Suchbegriff:", 10, 412, 90, 20)
    GUICtrlSetFont(-1, 11)
    Global $hSearch = GUICtrlCreateInput("", 100, 410, 495, 20)
    GUICtrlSetFont(-1, 11)
    Global $hSearchStart = GUICtrlCreateButton("Suche...", 605, 410, 60, 20, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9)
    Global $hSearchReset = GUICtrlCreateButton("<-", 675, 410, 20, 20)
    GUICtrlSetFont(-1, 8, 600, 0, "Verdana")
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $hNew = GUICtrlCreateButton("Neuer Eintrag", 10, 440, 85, 35)
    Global $hEdit = GUICtrlCreateButton("Markierten Eintrag bearbeiten", 105, 440, 110, 35, $BS_MULTILINE)
    Global $hAendern = GUICtrlCreateButton("Prüfungen eintragen", 225, 440, 110, 35, $BS_MULTILINE)
    Global $hLoad = GUICtrlCreateButton("Laden", 345, 440, 70, 35)
    Global $hSave = GUICtrlCreateButton("Speichern", 425, 440, 70, 35)
    Global $hDel = GUICtrlCreateButton("Markierte Einträge löschen", 505, 440, 90, 35, $BS_MULTILINE)
    Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 605, 440, 90, 35, $BS_MULTILINE)
    Global $hCM = GUICtrlCreateContextMenu($hListView)
    Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM)
    Global $hCAendern = GUICtrlCreateMenuItem("Prüfungen eintragen", $hCM)
    Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM)
    Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM)
    #endregion Hauptfenster
    #region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neuer Eintrag", 1400, 140, -1, -1, $WS_SYSMENU)
    Global $aHeader = StringSplit($sHeader, '|')
    Global $aNew[$aHeader[0]]
    For $i = 1 To $aHeader[0]
    GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 125, 15, 110, 20)
    GUICtrlSetFont(-1, 8, 400, 0, 'Verdana')
    $aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 125, 30, 120, 20, Default, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana')
    Next
    Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 640, 65, 120, 25, $BS_DEFPUSHBUTTON)
    #endregion Fenster für neuen Eintrag

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

    _GUICtrlListView_RegisterSortCallBack($hLVHandle)
    GUISetState(@SW_SHOW, $hGui)
    If FileExists($sDBFile) Then Load()
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $hListView
    _GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView))
    Case $hSearchStart
    GUICtrlSetState($hSearchStart, $GUI_DISABLE)
    _GUICtrlListView_DeleteAllItems($hSearchLVHandle)
    Dim $sSearch = GUICtrlRead($hSearch), $sItem
    For $i = 0 To _GUICtrlListView_GetItemCount($hLVHandle) - 1
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
    If StringInStr($sItem, $sSearch) Then GUICtrlCreateListViewItem($sItem, $hSearchListView)
    Next
    GUICtrlSetState($hListView, $GUI_HIDE)
    GUICtrlSetState($hSearchListView, $GUI_SHOW)
    GUICtrlSetState($hSearchReset, $GUI_ENABLE)
    Case $hSearchReset
    GUICtrlSetData($hSearch, "")
    GUICtrlSetState($hSearchListView, $GUI_HIDE)
    GUICtrlSetState($hListView, $GUI_SHOW)
    GUICtrlSetState($hSearchStart, $GUI_ENABLE)
    GUICtrlSetState($hSearchReset, $GUI_DISABLE)
    Case $hNew, $hCMNew
    WinSetTitle($hGuiNew, "", "Neuer Eintrag")
    GUISetState(@SW_SHOW, $hGuiNew)
    GUISetState(@SW_DISABLE, $hGui)
    Case $hEdit, $hCMEdit
    WinSetTitle($hGuiNew, "", "Eintrag bearbeiten")
    GUISetState(@SW_SHOW, $hGuiNew)
    GUISetState(@SW_DISABLE, $hGui)
    Edit()
    Case $hLoad
    Load()
    Case $hSave
    Save()
    Case $hDel, $hCMDel
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then _GUICtrlListView_DeleteItemsSelected($hLVHandle)
    Case $hDelAll
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($hLVHandle)
    Case $hCreate
    NewItem()
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $hGui
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End()
    Case $hGuiNew
    $iEdit = -1
    For $i = 0 To UBound($aNew) - 1
    GUICtrlSetData($aNew[$i], "")
    Next
    GUISetState(@SW_HIDE, $hGuiNew)
    GUISetState(@SW_ENABLE, $hGui)
    WinActivate($hGui)
    EndSwitch
    EndSwitch
    WEnd
    Func End()
    ;~ Save()
    _GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
    Exit
    EndFunc
    Func NewItem()
    Local $sItem = ""
    For $i = 0 To UBound($aNew) - 1
    If $iEdit > -1 Then
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i)
    Else
    $sItem &= GUICtrlRead($aNew[$i]) & "|"
    EndIf
    GUICtrlSetData($aNew[$i], "")
    Next
    If $iEdit > -1 Then
    $iEdit = -1
    GUISetState(@SW_HIDE, $hGuiNew)
    GUISetState(@SW_ENABLE, $hGui)
    Sleep(300)
    WinActivate($hGui)
    Else
    GUICtrlSetState($aNew[0], $GUI_FOCUS)
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView)
    EndIf
    EndFunc
    Func Edit()
    $iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle)
    If $iEdit > -1 Then
    Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit)
    For $i = 1 To $aItem[0]
    GUICtrlSetData($aNew[$i - 1], $aItem[$i])
    Next
    EndIf
    EndFunc
    Func Load()
    Local $hFile, $sContent, $aNewItems
    $hFile = FileOpen($sDBFile, 0)
    If $hFile <> -1 Then
    $sContent = FileRead($hFile)
    FileClose($hFile)
    $sContent = StringTrimRight($sContent, 2)
    $aNewItems = StringSplit($sContent, @CRLF, 1)
    If Not IsArray($aNewItems) Then Return
    _GUICtrlListView_BeginUpdate($hLVHandle)
    For $i = 1 To $aNewItems[0]
    GUICtrlCreateListViewItem($aNewItems[$i], $hListView)
    Next
    _GUICtrlListView_EndUpdate($hLVHandle)
    EndIf
    EndFunc
    Func Save()
    Local $sItem, $hFile, $iCount
    $iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1
    If $iCount = -1 Then Return FileDelete($sDBFile)
    $hFile = FileOpen($sDBFile, 2)
    If $hFile <> -1 Then
    For $i = 0 To $iCount
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
    FileWriteLine($hFile, $sItem)
    Next
    FileClose($hFile)
    EndIf
    EndFunc

    [/autoit]

    1.Problem: Mit den Button "Neuer Eintrag", soll in der GUI nur "KP.|Y-Nummer|Gerät|Ser.Nr|Bediener" eingetragen werden.

    2.Problem: Durch den Button "Makierter Eintrag bearbeiten", soll "KP.|Y-Nummer|Gerät|Ser.Nr|Bediener" verändert werden können.

    3.Problem: Und durch den Button "Prüfungen eintragen", soll in der makierten Zeile "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am" verändert werden.


    Ich hoffe es kann mir einer schnellstmöglich weiterhelfen! Dazu schon einmal meinen Dank und Schöne Feiertage!!!

    Einmal editiert, zuletzt von Croco1984 (24. Dezember 2012 um 13:14)

    • Offizieller Beitrag

    Deine Lösung, für alle deine Probleme heißt: GUICtrlSetState.
    Einfach die betreffenden Controls mitteln GUICtrlSetState($CtrlId , $GUI_DISABLE) abschalten und falls du sie brauchst, mittels GUICtrlSetState($CtrlId , $GUI_ENABLE) wieder einschalten.
    Schau dir mal die Hilfe dazu an.

  • Da ich neu bei AutoIT bin, weiß ich nicht was Du meinst!
    Ich denke durch ein nur abstellen der GUICtrlSetState ist mein Problem nicht gelöst.
    Ich habe es ja schon einmal geschafft, das wenn ich auf "neuer Eintrag" klicke nur der Bereich "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener"
    sich eintragen ließ, aber wenn ich dann auf "Markierter Bereich bearbeiten" klicke, bricht mir alles ab.
    Ein nur eintragen der "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am" Sachen beim anklicken
    des Button "Prüfungen eintragen" habe ich noch nicht einmal versucht!

    • Offizieller Beitrag

    Die Lösung nannte ich dir bereits, aber damit du mir glaubst:

    Spoiler anzeigen
    [autoit]

    #Region - Timestamp
    ; 2012-12-23 21:44:30
    #EndRegion

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $sHeader = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener|Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
    Global $neuer_Eintrag = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener"
    Global $Eintragungen = "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
    Global $sDBFile = @ScriptDir & "\datenbank.txt"
    Global $iEdit = -1
    #region Hauptfenster
    Global $hGui = GUICreate("Fahrzeuge", 910, 480)
    GUISetBkColor(0xCCCCCC)
    Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
    Global $hLVHandle = GUICtrlGetHandle($hListView)
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Kp.", 30, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 1, "Y-Nummer", 120, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 2, "Gerät", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 3, "Ser.Nr.", 100, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 4, "Bediener", 100, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 5, "Letzte TMP", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 6, "BGV A3 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 7, "BGV D8 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 8, "BGV D36 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 9, "TDv 023/024 am", 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 10, "BGR 500 am", 80, 0)
    Global $hSearchListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
    GUICtrlSetState(-1, $GUI_HIDE)
    Global $hSearchLVHandle = GUICtrlGetHandle($hSearchListView)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 0, "Kp.", 30, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 1, "Y-Nummer", 120, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 2, "Gerät", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 3, "Ser.Nr.", 100, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 4, "Bediener", 100, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 5, "Letzte TMP", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 6, "BGV A3 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 7, "BGV D8 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 8, "BGV D36 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 9, "TDv 023/024 am", 80, 0)
    _GUICtrlListView_SetColumn($hSearchLVHandle, 10, "BGR 500 am", 80, 0)
    GUICtrlCreateLabel("Suchbegriff:", 10, 412, 90, 20)
    GUICtrlSetFont(-1, 11)
    Global $hSearch = GUICtrlCreateInput("", 100, 410, 495, 20)
    GUICtrlSetFont(-1, 11)
    Global $hSearchStart = GUICtrlCreateButton("Suche...", 605, 410, 60, 20, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9)
    Global $hSearchReset = GUICtrlCreateButton("<-", 675, 410, 20, 20)
    GUICtrlSetFont(-1, 8, 600, 0, "Verdana")
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $hNew = GUICtrlCreateButton("Neuer Eintrag", 10, 440, 85, 35)
    Global $hEdit = GUICtrlCreateButton("Markierten Eintrag bearbeiten", 105, 440, 110, 35, $BS_MULTILINE)
    Global $hAendern = GUICtrlCreateButton("Prüfungen eintragen", 225, 440, 110, 35, $BS_MULTILINE)
    Global $hLoad = GUICtrlCreateButton("Laden", 345, 440, 70, 35)
    Global $hSave = GUICtrlCreateButton("Speichern", 425, 440, 70, 35)
    Global $hDel = GUICtrlCreateButton("Markierte Einträge löschen", 505, 440, 90, 35, $BS_MULTILINE)
    Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 605, 440, 90, 35, $BS_MULTILINE)
    Global $hCM = GUICtrlCreateContextMenu($hListView)
    Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM)
    Global $hCAendern = GUICtrlCreateMenuItem("Prüfungen eintragen", $hCM)
    Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM)
    Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM)
    #endregion Hauptfenster
    #region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neuer Eintrag", 1400, 140, -1, -1, $WS_SYSMENU)
    Global $aHeader = StringSplit($sHeader, '|')
    Global $aNew[$aHeader[0]]
    For $i = 1 To $aHeader[0]
    GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 125, 15, 110, 20)
    GUICtrlSetFont(-1, 8, 400, 0, 'Verdana')
    $aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 125, 30, 120, 20, Default, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana')
    GUICtrlSetState(-1, $GUI_DISABLE)
    Next
    Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 640, 65, 120, 25, $BS_DEFPUSHBUTTON)
    #endregion Fenster für neuen Eintrag

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

    _GUICtrlListView_RegisterSortCallBack($hLVHandle)
    GUISetState(@SW_SHOW, $hGui)
    If FileExists($sDBFile) Then Load()
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $hListView
    _GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView))
    Case $hSearchStart
    GUICtrlSetState($hSearchStart, $GUI_DISABLE)
    _GUICtrlListView_DeleteAllItems($hSearchLVHandle)
    Dim $sSearch = GUICtrlRead($hSearch), $sItem
    For $i = 0 To _GUICtrlListView_GetItemCount($hLVHandle) - 1
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
    If StringInStr($sItem, $sSearch) Then GUICtrlCreateListViewItem($sItem, $hSearchListView)
    Next
    GUICtrlSetState($hListView, $GUI_HIDE)
    GUICtrlSetState($hSearchListView, $GUI_SHOW)
    GUICtrlSetState($hSearchReset, $GUI_ENABLE)
    Case $hSearchReset
    GUICtrlSetData($hSearch, "")
    GUICtrlSetState($hSearchListView, $GUI_HIDE)
    GUICtrlSetState($hListView, $GUI_SHOW)
    GUICtrlSetState($hSearchStart, $GUI_ENABLE)
    GUICtrlSetState($hSearchReset, $GUI_DISABLE)
    Case $hNew, $hCMNew
    WinSetTitle($hGuiNew, "", "Neuer Eintrag")
    For $i = 0 To 4
    GUICtrlSetState($aNew[$i], $GUI_ENABLE)
    Next
    For $i = 5 To 10
    GUICtrlSetState($aNew[$i], $GUI_DISABLE)
    Next
    GUISetState(@SW_SHOW, $hGuiNew)
    GUISetState(@SW_DISABLE, $hGui)
    Case $hEdit, $hCMEdit
    WinSetTitle($hGuiNew, "", "Eintrag bearbeiten")
    For $i = 0 To 4
    GUICtrlSetState($aNew[$i], $GUI_ENABLE)
    Next
    For $i = 5 To 10
    GUICtrlSetState($aNew[$i], $GUI_DISABLE)
    Next
    GUISetState(@SW_SHOW, $hGuiNew)
    GUISetState(@SW_DISABLE, $hGui)
    Edit()
    Case $hAendern, $hCAendern
    WinSetTitle($hGuiNew, "", "Prüfungen eintragen")
    For $i = 0 To 4
    GUICtrlSetState($aNew[$i], $GUI_DISABLE)
    Next
    For $i = 5 To 10
    GUICtrlSetState($aNew[$i], $GUI_ENABLE)
    Next
    GUISetState(@SW_SHOW, $hGuiNew)
    GUISetState(@SW_DISABLE, $hGui)
    Edit()
    Case $hLoad
    Load()
    Case $hSave
    Save()
    Case $hDel, $hCMDel
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then _GUICtrlListView_DeleteItemsSelected($hLVHandle)
    Case $hDelAll
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($hLVHandle)
    Case $hCreate
    NewItem()
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $hGui
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End()
    Case $hGuiNew
    $iEdit = -1
    For $i = 0 To UBound($aNew) - 1
    GUICtrlSetData($aNew[$i], "")
    Next
    GUISetState(@SW_HIDE, $hGuiNew)
    GUISetState(@SW_ENABLE, $hGui)
    WinActivate($hGui)
    EndSwitch
    EndSwitch
    WEnd
    Func End()
    ;~ Save()
    _GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
    Exit
    EndFunc ;==>End
    Func NewItem()
    Local $sItem = ""
    For $i = 0 To UBound($aNew) - 1
    If $iEdit > -1 Then
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i)
    Else
    $sItem &= GUICtrlRead($aNew[$i]) & "|"
    EndIf
    GUICtrlSetData($aNew[$i], "")
    Next
    If $iEdit > -1 Then
    $iEdit = -1
    GUISetState(@SW_HIDE, $hGuiNew)
    GUISetState(@SW_ENABLE, $hGui)
    Sleep(300)
    WinActivate($hGui)
    Else
    GUICtrlSetState($aNew[0], $GUI_FOCUS)
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView)
    EndIf

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

    EndFunc ;==>NewItem
    Func Edit()
    $iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle)
    If $iEdit > -1 Then
    Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit)
    For $i = 1 To $aItem[0]
    GUICtrlSetData($aNew[$i - 1], $aItem[$i])
    Next
    EndIf

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

    EndFunc ;==>Edit

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

    Func Load()
    Local $hFile, $sContent, $aNewItems
    $hFile = FileOpen($sDBFile, 0)
    If $hFile <> -1 Then
    $sContent = FileRead($hFile)
    FileClose($hFile)
    $sContent = StringTrimRight($sContent, 2)
    $aNewItems = StringSplit($sContent, @CRLF, 1)
    If Not IsArray($aNewItems) Then Return
    _GUICtrlListView_BeginUpdate($hLVHandle)
    For $i = 1 To $aNewItems[0]
    GUICtrlCreateListViewItem($aNewItems[$i], $hListView)
    Next
    _GUICtrlListView_EndUpdate($hLVHandle)
    EndIf
    EndFunc ;==>Load
    Func Save()
    Local $sItem, $hFile, $iCount
    $iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1
    If $iCount = -1 Then Return FileDelete($sDBFile)
    $hFile = FileOpen($sDBFile, 2)
    If $hFile <> -1 Then
    For $i = 0 To $iCount
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
    FileWriteLine($hFile, $sItem)
    Next
    FileClose($hFile)
    EndIf
    EndFunc ;==>Save

    [/autoit]

    Für dein 1. und 2.Problem reicht es die 6 letzten Inputs zu deaktivieren.
    Zu 3: Einfach mal ne Abfrage einbauen und die ersten 5 Inputs deaktivieren. ;)

  • Es ist ja nicht so das ich Dir nicht glaubte, es liegt eher daran das ich gerade erst lerne und noch sehr viele Sachen bei AutoIt neu sind.
    Aber trotzdem vielen Dank für die schnelle Hilfe!