HI an alle da draußen!
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
#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)
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", ""))
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]))
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)
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??
Ich bedanke mich schonmal für eure hilfe!