Help??

  • HI Ich hab da (mal wieder) ein problem. Undzwar soll sich die Anzahl der Editboxen nach der geöffneten kartei richten. Im Moment öffnet er immer eine bestimte Anzahl an edits. Er soll diese anzahl aber aus der ini für den entsprechenden kunden nehmen. also das er die anzahl erst beim öffnen der kartei erstellt und beim speichern die anzahl an edits auch in die ini geschrieben wird.

    mein versuch:

    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 $sIni = @ScriptDir & "\Gui.ini"
    $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)
    $PageControl1 = GUICtrlCreateTab(40, 65, 1300, 900)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Besitzer ") ;Besitzer
    $Name = GUICtrlCreateLabel("Name", 56, 128, 46, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $NameIn = GUICtrlCreateInput("", 210, 128, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Vorname = GUICtrlCreateLabel("Vorname", 56, 188, 68, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Hausnummer = GUICtrlCreateLabel("Hausnummer", 56, 308, 96, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $weg = GUICtrlCreateLabel("Straße", 56, 248, 51, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Postleitzahl = GUICtrlCreateLabel("Postleitzahl", 56, 368, 83, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Ort = GUICtrlCreateLabel("Ort", 56, 428, 26, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Tele = GUICtrlCreateLabel("Tele.", 56, 488, 39, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Mobil = GUICtrlCreateLabel("Mobil-tele.", 56, 548, 78, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $NameIn = GUICtrlCreateInput("", 210, 128, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $VornameIn = GUICtrlCreateInput("", 210, 188, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $StraIn = GUICtrlCreateInput("", 210, 248, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $PostleitzahlIn = GUICtrlCreateInput("", 210, 368, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $OrtIn = GUICtrlCreateInput("", 210, 428, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TeleIn = GUICtrlCreateInput("", 210, 488, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $MobilIn = GUICtrlCreateInput("", 210, 548, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $HausnummerIn = GUICtrlCreateInput("", 210, 308, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("Tier ") ;Tier
    $TName = GUICtrlCreateLabel("Name", 56, 128, 46, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TTierart = GUICtrlCreateLabel("Tierart", 56, 188, 49, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TRasse = GUICtrlCreateLabel("Rasse", 56, 248, 49, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TGb = GUICtrlCreateLabel("Geburtztag", 56, 308, 80, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TGeschlecht = GUICtrlCreateLabel("Geschlecht", 56, 368, 81, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TKennzeichen = GUICtrlCreateLabel("Kennzeichen", 56, 428, 93, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TTranspondernummer = GUICtrlCreateLabel("Transpondernummer", 56, 488, 142, 21)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TNameIn = GUICtrlCreateInput("", 210, 128, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TTierartIn = GUICtrlCreateInput("", 210, 188, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TRasseIn = GUICtrlCreateInput("", 210, 248, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TGbIn = GUICtrlCreateInput("", 210, 308, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TGeschlechtIn = GUICtrlCreateInput("", 210, 368, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TKennzeichenIn = GUICtrlCreateInput("", 210, 428, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $TTranspondernummerIn = GUICtrlCreateInput("", 210, 488, 329, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $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)*80)
    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)*80)
    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
    _New()
    EndSwitch
    WEnd
    Func _newEdit($iEditNr)
    GUISwitch($hTabSheet3)
    ConsoleWrite($iEditNr & @CRLF)
    $hEdit[$iEditNr][0] = GUICtrlCreateEdit("", 56, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][1] = GUICtrlCreateEdit("", 236, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][2] = GUICtrlCreateEdit("", 416, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][3] = GUICtrlCreateEdit("", 596, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][4] = GUICtrlCreateEdit("", 776, $iTop, 180, 70, BitOR($WS_VSCROLL, $ES_WANTRETURN))
    $hEdit[$iEditNr][5] = GUICtrlCreateEdit("", 956, $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" , "" )
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "0" ,"Edit", GUICtrlRead($hEdit[$iEditNr][0]))
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "1" ,"Edit", GUICtrlRead($hEdit[$iEditNr][1]))
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "2" ,"Edit", GUICtrlRead($hEdit[$iEditNr][2]))
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "3" ,"Edit", GUICtrlRead($hEdit[$iEditNr][3]))
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "4" ,"Edit", GUICtrlRead($hEdit[$iEditNr][4]))
    Local $hFile = IniWrite($iSave,"Edit" & $iEditNr & "5" ,"Edit", GUICtrlRead($hEdit[$iEditNr][5]))
    EndFunc
    Func _New()
    IniWrite( "TEMP" , "temp" , "temp" , "" )
    for $i = 0 to $iEdits -1 ;<=======================
    _loadEdit($i)
    Next
    IniDelete( "TEMP" , "temp" )
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Stormrider (24. Mai 2010 um 18:44)

  • Hallo StormRider,

    da sich das Skript verabschiedet sobald man auf den Reiter Behandlngen geht empfehle ich

    [autoit]

    Global $iEdits = 1, $hEdit[1][6], $iTop = 5

    [/autoit]

    vor der Guierstellung einzfügen. Ob noch weitere Bugs versteckt sind habe ich nicht ausgetestet.
    Wird dies eine kommerzielle Anwendung oder ist das eher ein soziales Projekt für einen Tierschutzverein :?:

    mfg (Auto)Bert

  • Danke!! Es klapt jetzt bis auf ein paar bugs. die kann ich aber selbst korigieren. Zu deiner frage: Ich schreib das für meine Mutter (Die is Tierärztin) Es ist zur unterstützung eines bereits vorhandenen Programmes. Warum fragst du??

  • Danke!! Es klapt jetzt bis auf ein paar bugs. die kann ich aber selbst korigieren. Zu deiner frage: Ich schreib das für meine Mutter (Die is Tierärztin) Es ist zur unterstützung eines bereits vorhandenen Programmes. Warum fragst du??

    Bei einem Sozialen Projekt hätte ich ein paar Stunden investiert und die Basis auf SQLite programmiert,

    mfg (Auto)Bert