Editspeichern = Fehler

  • HI an alle da draußen! :D

    Ich wüsste gern ob mir jemand hilft oder helfen kann einen fehler in meinem script zu behben: und zwar speichert er unter dem tabsheet "behandlung" die editboxen nicht korekt ab. Er speichert die editbox-reihe 0 obwohl die vorher nit da war und auch nicht erstellt wurde! Ich wüste gerne ob ich das unterbinden kann!

    Hier das script und das include:

    Spoiler anzeigen
    [autoit]

    #include <ScrollBarConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <StructureConstants.au3>
    #include <GUIScrollBars.au3>
    #include <GUIScroll.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>
    Global $iEdits = 1, $hEdit[1][6], $iTop = 5
    $Kundenkartei = GUICreate("Kundenkartei", 1400, 1000)
    $Load = GUICtrlCreateButton("Load", 30, 16, 75, 25)
    $Save = GUICtrlCreateButton("Save", 130, 16, 75, 25)
    $New = GUICtrlCreateButton("New" , 230, 16, 75, 25)
    $Rechnung = GUICtrlCreateButton("Rechnung", 330, 16, 75, 25)
    _GUICtrlButton_Enable($Rechnung, False)
    $PageControl1 = GUICtrlCreateTab(40, 65, 1300, 900)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Besitzer ") ;Besitzer
    $TabSheet2 = GUICtrlCreateTabItem("Tier ") ;Tier
    $TabSheet3 = GUICtrlCreateTabItem("Behandlung ") ;Behandlung
    $hAdd = GUICtrlCreateButton("Hinzufügen", 430, 16, 75, 25)
    GUICtrlCreateTabItem("")
    $hTabSheet3 = GUICreate("HilfsTab 3", 1270, 820, 55, 130, BitOR($WS_POPUP, $WS_VSCROLL, $WS_CLIPSIBLINGS), $WS_EX_MDICHILD, $Kundenkartei)
    GUICtrlSetBkColor($hTabSheet3,0xFFFFFF)
    GUISetState(@SW_SHOW, $Kundenkartei)
    Scrollbar_Create($hTabSheet3, $SB_VERT, 10 + ($iEdits-5)*70)
    Scrollbar_Step(20, $hTabSheet3, $SB_VERT)
    GUISetState(@SW_HIDE, $hTabSheet3)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hAdd
    ReDim $hEdit[UBound($hEdit) + 1][6] ;<=============== warscheins noch von mir
    _newEdit($iEdits)
    $iEdits += 1
    _GUIScrollBars_SetScrollRange($hTabSheet3, $SB_VERT, 0, 5 + 10+($iEdits-5)*70)
    Case $PageControl1
    If _GUICtrlTab_GetCurSel($PageControl1) = 2 Then
    GUISetState(@SW_SHOW, $hTabSheet3)
    Else
    GUISetState(@SW_HIDE, $hTabSheet3)
    EndIf
    Case $Save
    $hSave = InputBox("Save", "Unter welchem Titel soll die Kundenkartei gespeichert werden?")
    IniWrite("TEMP" ,"temp","temp", $hSave )
    IniWrite($hSave, "Edits", "Count", $iEdits)
    for $i = 0 to $iEdits -1 ;<=======================
    _SaveEdit($i)
    Next
    IniDelete( "TEMP" , "temp" )
    Case $Load
    $hload = InputBox("Load", "Welche Kundenkartei soll geladen werden?")
    IniWrite( "TEMP" , "temp" , "temp" , $hload )
    Global $iEdits = IniRead($hload, "Edits", "Count", 1)
    Global $hEdit[$iEdits][6], $iTop = 5
    ConsoleWrite($iEdits & @CRLF)
    For $i = 0 To $iEdits - 1
    _newEdit($i)
    Next
    for $i = 0 to $iEdits -1 ;<=======================
    _loadEdit($i)
    Next
    IniDelete( "TEMP" , "temp" )
    Case $New
    GUIDelete($hTabSheet3)
    _New()
    If _GUICtrlTab_GetCurSel($PageControl1) = 2 Then
    GUISetState(@SW_SHOW, $hTabSheet3)
    Else
    GUISetState(@SW_HIDE, $hTabSheet3)
    EndIf
    EndSwitch
    WEnd
    Func _newEdit($iEditNr)
    GUISwitch($hTabSheet3)
    ConsoleWrite($iEditNr & @CRLF)
    $hEdit[$iEditNr][0] = GUICtrlCreateEdit("", 36, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][1] = GUICtrlCreateEdit("", 216, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][2] = GUICtrlCreateEdit("", 396, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][3] = GUICtrlCreateEdit("", 576, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][4] = GUICtrlCreateEdit("", 756, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][5] = GUICtrlCreateEdit("", 936, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $iTop += 80
    GUISwitch($Kundenkartei)
    EndFunc ;==>_newEdit
    Func _loadEdit($iEditNr)
    $iload = IniRead( "TEMP" , "temp" , "temp" , "" )
    GUICtrlSetData($hEdit[$iEditNr][0],IniRead($iload,"Edit" & $iEditNr & "0" ,"Edit", ""))
    GUICtrlSetData($hEdit[$iEditNr][1],IniRead($iload,"Edit" & $iEditNr & "1" ,"Edit", ""))
    GUICtrlSetData($hEdit[$iEditNr][2],IniRead($iload,"Edit" & $iEditNr & "2" ,"Edit", ""))
    GUICtrlSetData($hEdit[$iEditNr][3],IniRead($iload,"Edit" & $iEditNr & "3" ,"Edit", ""))
    GUICtrlSetData($hEdit[$iEditNr][4],IniRead($iload,"Edit" & $iEditNr & "4" ,"Edit", ""))
    GUICtrlSetData($hEdit[$iEditNr][5],IniRead($iload,"Edit" & $iEditNr & "5" ,"Edit", ""))

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

    EndFunc
    Func _SaveEdit($iEditNr)
    ConsoleWrite("Zeilen: " & UBound($hEdit) & "Spalten: " & UBound($hEdit,2) & "Dim: " & UBound($hEdit,0) & @CRLF)
    $iSave = IniRead( "TEMP" , "temp" , "temp" , "" )
    IniWrite($iSave,"Edit" & $iEditNr & "0" ,"Edit", GUICtrlRead($hEdit[$iEditNr][0]))
    IniWrite($iSave,"Edit" & $iEditNr & "1" ,"Edit", GUICtrlRead($hEdit[$iEditNr][1]))
    IniWrite($iSave,"Edit" & $iEditNr & "2" ,"Edit", GUICtrlRead($hEdit[$iEditNr][2]))
    IniWrite($iSave,"Edit" & $iEditNr & "3" ,"Edit", GUICtrlRead($hEdit[$iEditNr][3]))
    IniWrite($iSave,"Edit" & $iEditNr & "4" ,"Edit", GUICtrlRead($hEdit[$iEditNr][4]))
    IniWrite($iSave,"Edit" & $iEditNr & "5" ,"Edit", GUICtrlRead($hEdit[$iEditNr][5]))

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

    EndFunc
    Func _New()
    $hTabSheet3 = GUICreate("HilfsTab 3", 1270, 820, 55, 130, BitOR($WS_POPUP, $WS_VSCROLL, $WS_CLIPSIBLINGS), $WS_EX_MDICHILD, $Kundenkartei)
    GUICtrlSetBkColor($hTabSheet3,0xFFFFFF)
    Scrollbar_Create($hTabSheet3, $SB_VERT, 10 + ($iEdits-5)*80)
    Scrollbar_Step(20, $hTabSheet3, $SB_VERT)
    ;GUISetState(@SW_HIDE, $hTabSheet3)

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

    EndFunc

    [/autoit]

    Ihr könnt es ausprobieren indem ihr einen neure reihe hinzufügt und diese speicher und sie anschleißend wieder ladet

    Mir is grad noch aufgefallen, dass die edits ihre breite verändern wenn die scrollbar auftaucht. Kann man das so hinbekommen, dass die edits ihre größe behalten?? Und falls ihr damit nicht klarkommt, dann teilt mir dies bitte mit! Dann weiß ich wenigstens das ich damit leben muss und brauch mir keine Gedanken mehr darum zu machen!!!

    Ich bedanke mich schonmal für eure hilfe!

  • Danke!!!!

    An so einen banalen fehler hab ich granit gedacht!!!!

    Fellt dir bezüglich der breite der edits auch was ein?? Ich hoffe du weißt was ich meine!

  • hmm auf die schnelle fällt mir nichts ein was da den bug verursacht
    aba du könnsestes so machen
    einfach die funk _newEditbearbeiten

    [autoit]

    Func _newEdit($iEditNr)
    GUISwitch($hTabSheet3)
    ConsoleWrite($iEditNr & @CRLF)
    If $iEdits > 5 Then Local $EditWidth = 177.5
    If $iEdits <=5 Then local $EditWidth = 180
    $hEdit[$iEditNr][0] = GUICtrlCreateEdit("", 36, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][1] = GUICtrlCreateEdit("", 36+1*$EditWidth, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][2] = GUICtrlCreateEdit("", 36+2*$EditWidth, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][3] = GUICtrlCreateEdit("", 36+3*$EditWidth, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][4] = GUICtrlCreateEdit("", 36+4*$EditWidth, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][5] = GUICtrlCreateEdit("", 36+5*$EditWidth, $iTop, $EditWidth, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $iTop += 80
    GUISwitch($Kundenkartei)
    EndFunc ;==>_newEdit

    [/autoit]
  • Daran hab ich auch schon gedacht!!! Danke für die Idee und das Umsetzen!