Func beim Wechsel nicht anzeigen

  • Hallo zusammen,

    ich habe mal wieder eine Frage die ich mir alleine net beantworten kann.
    Dazu hier ein stück aus dem Code (fals ganzer Code notwendig bitte schreiben):

    Spoiler anzeigen
    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button7
    _Buton7()
    Case $Button8
    _Buton8()
    Case $Button6
    _Buton7()
    Case $Button1
    Exit
    Case $Combo1
    _LoadData()
    Case $Combo2
    _LoadDataSchliessfach()
    Case $Button2
    _SaveData()
    Case $Button9
    _SaveDataSchliessfach()
    Case $Button3
    _Buton8()
    Case $Button4
    _deleteAccount()
    EndSwitch
    WEnd
    Func _Buton8()
    GUICtrlSetState($Button7, $GUI_HIDE)
    GUICtrlSetState($Button8, $GUI_HIDE)
    GUICtrlSetState($Group7, $GUI_HIDE)
    GUICtrlSetState($Group1, $GUI_SHOW)
    GUICtrlSetState($Group2, $GUI_SHOW)
    GUICtrlSetState($Group3, $GUI_HIDE)
    GUICtrlSetState($Group4, $GUI_HIDE)
    GUICtrlSetState($Group5, $GUI_HIDE)
    GUICtrlSetState($Group6, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_HIDE)
    GUICtrlSetState($Button5, $GUI_SHOW)
    GUICtrlSetState($Button6, $GUI_SHOW)
    GUICtrlSetState($Group6, $GUI_SHOW)
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_HIDE)
    GUICtrlSetState($Button9, $GUI_SHOW)
    GUICtrlSetState($Label1, $GUI_HIDE)
    GUICtrlSetState($Label2, $GUI_HIDE)
    GUICtrlSetState($Label3, $GUI_HIDE)
    GUICtrlSetState($Input1, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Input3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_SHOW)
    GUICtrlSetState($Group10, $GUI_SHOW)
    GUICtrlSetState($Group11, $GUI_SHOW)
    GUICtrlSetState($Group12, $GUI_SHOW)
    GUICtrlSetState($Group13, $GUI_SHOW)
    GUICtrlSetState($aSpalte1, $GUI_HIDE)
    _generateSchliessfachSpalte($aSchliesfach1,40)
    _generateSchliessfachSpalte($aSchliesfach2,280)
    _generateSchliessfachSpalte($aSchliesfach3,510)
    _generateSchliessfachSpalte($aSchliesfach4,740)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _Buton7()
    GUICtrlSetState($Button5, $GUI_HIDE)
    GUICtrlSetState($Button6, $GUI_HIDE)
    GUICtrlSetState($Button7, $GUI_HIDE)
    GUICtrlSetState($Button8, $GUI_HIDE)
    GUICtrlSetState($Group7, $GUI_HIDE)
    GUICtrlSetState($Group1, $GUI_SHOW)
    GUICtrlSetState($Group2, $GUI_SHOW)
    GUICtrlSetState($Group3, $GUI_SHOW)
    GUICtrlSetState($Group4, $GUI_SHOW)
    GUICtrlSetState($Group5, $GUI_SHOW)
    GUICtrlSetState($Group6, $GUI_SHOW)
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    GUICtrlSetState($Button4, $GUI_SHOW)
    GUICtrlSetState($Label1, $GUI_SHOW)
    GUICtrlSetState($Label2, $GUI_SHOW)
    GUICtrlSetState($Label3, $GUI_SHOW)
    GUICtrlSetState($Input1, $GUI_SHOW)
    GUICtrlSetState($Input2, $GUI_SHOW)
    GUICtrlSetState($Input3, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_SHOW)
    GUICtrlSetState($Label4, $GUI_SHOW)
    _generateLagerSpalte($aSpalte1,15)
    _generateLagerSpalte($aSpalte2,355)
    _generateLagerSpalte($aSpalte3,715)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,90)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateSchliessfachSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $j = 1 To UBound($ArrayToUse)-1
    $Fach = GUICtrlCreateLabel(' Fach ' ,$left,216+$Abstand,90)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState($Fach, $GUI_SHOW)
    $ArrayToUse[$j] = GUICtrlCreateInput("",45+$left,216+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc

    [/autoit]

    Ich möchte gerne wenn ich Button8 ausführe die Func _generateLagerSpalte(ByRef $ArrayToUse,$left) ausgeblendet haben und wenn ich Button7 ausführe die Func _generateSchliessfachSpalte(ByRef $ArrayToUse,$left) ausgeblendet haben, da sich ja sonst beide überlappen beim wechseln.

    Ich hoffe das jemand ne Idee für mich hat!

    Vielen dank schonmal.

    Mfg Ghostleader

  • Servous, wie soll man bitte eine Funktion ausblenden? 8| man kann eine GUI ausblenden aber doch keine Funktion ..


    ASOO jetzt hab ich gecheckt was du willst du willst die Spalten die durch die Funktion erzeugt wurden ausblenden na dann lass eine schleife laufen

    [autoit]


    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach[$i], $GUI_HIDE)
    Next

    [/autoit]

    oder lösch das Control komplett oder sonst was :D xD ich hab dir dein Script doch fast fertig gebaut wie kann man das denn nur so verunstalten xDDD

    Gruß Marvin

  • Hallo Protex,

    Danke wiedermal für deine Hilfe!

    Richtig du hast den Grosteil des Scriptes erstellt, (wofür ich dir auch gedankt habe) jedoch war dies nur das Grundgerüst da dies längst nicht alles ist was da rein soll! ;)
    Und was heist hier (wie kann man das denn nur so verunstalten)? Sorry das ich nicht so ein Profi in Autoit bin wie du!!!
    Wenn dir etwas auffällt und du weist wie man es anders/besser machen kann, dann sage es doch bitte!
    Bin jederzeit für Vorschläge offen die mir aufzeigen wie man was besser machen kann!

    Mfg Ghostleader

    Ps:
    Also irgendwie bekomme ich es net hin, auch net mit deinem Beispiel. Wo genau muss das denn hin?

    Einmal editiert, zuletzt von Ghostleader (15. Dezember 2011 um 19:14)

  • Sorry für doppel Post,

    aber hat noch wer ne Idee bitte für mich bzw. Hilfestellung, denn ich bekomme es trotz Tipp von Protex net hin denn ich weiss net so recht wo es hin muss!

    Mfg Ghostleader

  • Lass im Case des Buttons eine Variable $state zwischen true und false wechseln und übergib sie als weiteren Parameter an deine Funktion. In der Funktion prüfst du dann den Parameter in einer If Anweisung und führst entweder deine FOR-Schleife zum erstellen der Controlls aus oder eine, die sie wieder löscht.

  • Hallo i2c,

    danke für deine schnelle wenn auch für mich etwas überqualifizierte Antwort.
    Wie ich schon mehrmals schrieb bin ich ja noch nicht so der Autoit Fachman, was mich dazu bringt das ich gerade leider nicht ganz durchsehe bei deiner Ausführung!

    Sorry bin bissel schwieriger Fall ;(

    Mfg Ghostleader

    Einmal editiert, zuletzt von Ghostleader (15. Dezember 2011 um 23:44)

  • Kleines Beispiel ...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Global $state = True
    Dim $aLabels[3][2] = [[0, "eins"],[0, "zwei"],[0, "drei"]]
    #Region - GUI Create
    GUICreate('', 500, 500)
    $iButton = GUICtrlCreateButton("toggle", 4, 4)
    GUISetState()
    #EndRegion - GUI Create

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

    _toggleCOntrols($aLabels, $state)

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

    #Region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $iButton
    If $state = True Then
    $state = False
    ElseIf $state = False Then
    $state = True
    EndIf
    _toggleCOntrols($aLabels, $state)
    EndSelect
    WEnd
    #EndRegion - GUI SelectLoop

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

    Func _toggleCOntrols(ByRef $aLabels, $state)
    ConsoleWrite($state & @CRLF)
    If $state = True Then
    $top = 40
    For $i = 0 To UBound($aLabels) - 1
    $aLabels[$i][0] = GUICtrlCreateLabel($aLabels[$i][1], 4, $top)
    $top += 30
    Next
    ElseIf $state = False Then
    For $i = 0 To UBound($aLabels) - 1
    GUICtrlDelete($aLabels[$i][0])
    Next
    EndIf
    EndFunc ;==>_toggleCOntrols

    [/autoit]
    • Offizieller Beitrag

    Übrigens,
    wenn du nicht so gerne Arrays verwendest ( soll ja vorkommen :whistling: ), kannst du den Status für mehre Controls auch in einem Rutsch setzen, mithilfe einer kleinen Funktion:

    [autoit]

    _CtrlsSetState($GUI_HIDE, $Label1, $Input1, $Button1)

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

    ; == Status für bis zu 20 Ctrl gleichzeitig setzen
    Func _CtrlsSetState($iState, $ctrl1, $ctrl2=-1, $ctrl3=-1, $ctrl4=-1, $ctrl5=-1, $ctrl6=-1, $ctrl7=-1, $ctrl8=-1, $ctrl9=-1, $ctrl10=-1, _
    $ctrl11=-1, $ctrl12=-1, $ctrl13=-1, $ctrl14=-1, $ctrl15=-1, $ctrl16=-1, $ctrl17=-1, $ctrl18=-1, $ctrl19=-1, $ctrl20=-1)
    Local $aCtrl[20] = [$ctrl1,$ctrl2,$ctrl3,$ctrl4,$ctrl5,$ctrl6,$ctrl7,$ctrl8,$ctrl9,$ctrl10,$ctrl11,$ctrl12,$ctrl13,$ctrl14,$ctrl15,$ctrl16,$ctrl17,$ctrl18,$ctrl19,$ctrl20]
    For $i = 0 To 19
    If $aCtrl[$i] = -1 Then Return
    GUICtrlSetState($aCtrl[$i], $iState)
    Next
    EndFunc ;==>_CtrlsSetState

    [/autoit]
  • Hallo zusammen,
    erstmal wieder ein Danke an euch beide!

    i2c
    Also ich habe versucht das mal anhand deines bsp. umzusetzen, jedoch leider ohne Erfolg ;( ! Mich verwirrt es ein wenig das du wieder anders Codest wie Protex dies getan hat ;(
    Könntest du es bitte vielleicht nochmal anhand eines bsp. in der Schreibweise von Protex machen, also so wie es jetzt im Skript ist?

    BugFix
    Nein, ich finde ansich doch das Arrays eine tolle Sache sind, nur das es halt für mich als ich sag mal Autoit Leihe die Sache manchmal etwas ganz schön erschwert wird, da ich noch nicht so recht mit den folge Aufgaben wie eben gerade die von i2c klar komme!
    Der Forteil von nur Labels und Inputs ist eben das man sie leicht jederzeit ein/ausblenden lassen kann, anders eben jetzt gerade bei dieser Sache! ;(
    Aber danke für diese Idee, werde sie bestimmt nochmal an anderer Stelle brauchen! ;)

    Mfg Ghostleader

    Einmal editiert, zuletzt von Ghostleader (16. Dezember 2011 um 12:20)

  • Also den Teil von Protex müsstest du direkt unter der Funktion _Button7() setzen also

    [autoit]

    Func _Button7()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach[$i], $GUI_HIDE)
    Next

    [/autoit]

    und für Button8 fast dasselbe

    [autoit]

    Func _Button8()
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    ...
    ...
    ...
    EndFunc

    [/autoit]

    --EDIT--
    Wenn du willst, kannst du mal den gesamten Code posten bzw. auch per PN schicken, vielleicht kann man den ja etwas zusammen fassen, ich finde es jetzt schon sehr unübersichtlich :) ;)

  • Hallo TheLuBu,

    danke für deine Antwort und auch das du mir beim zusammenfassen helfen magst!

    Hier ersteinmal der gesamte Code:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=Lagerverwaltungstool.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=Copyright by Ghostleader & Areneas
    #AutoIt3Wrapper_Res_Fileversion=1.1.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Copyright by Ghostleader & Areneas
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ------------------------------------
    |
    Author: Ghostleader |
    Script: Version 1.1.0 |
    |
    Script Functionen: |
    - Lagerverwaltungstool = Version_1.1.0 |
    - Bankschließfach = Version_1.1.0 |
    |
    Copyright by Ghostleader @ Areneas |
    #ce ------------------------------------
    #region INCLUDES
    ;------------------------------------------------------------------------------------------
    #include <Array.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #endregion INCLUDES
    #region GLOBAL
    ;------------------------------------------------------------------------------------------
    Global $aSchliesfach1[17], $aSchliesfach2[17], $aSchliesfach3[17], $aSchliesfach4[17]
    Global $aSpalte1[37], $aSpalte2[37], $aSpalte3[37]
    Global $DataINI = 'data.ini'
    #endregion GLOBAL
    ;------------------------------------------------------------------------------------------
    #region GUI
    $Form1 = GUICreate("Form1", 990, 900, 192, 5)
    GUISetState()
    $Backround = GUICtrlCreatePic("bilder\lager.tgx", 0, 0, 1050, 900)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #endregion GUI
    ;------------------------------------------------------------------------------------------
    #region GROUP+BUTTONS
    $Group1 = GUICtrlCreateGroup("", 346, 6, 276, 36)
    $Button2 = GUICtrlCreateButton("Speichern", 360, 16, 110, 22)
    $Button9 = GUICtrlCreateButton("Speichern", 360, 16, 110, 22)
    $Button4 = GUICtrlCreateButton("Acc Löschen", 500, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $Group2 = GUICtrlCreateGroup("", 706, 6, 276, 36)
    $Button3 = GUICtrlCreateButton("Bankschließfach", 720, 16, 110, 22)
    $Button1 = GUICtrlCreateButton("Exit", 860, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $Button5 = GUICtrlCreateButton("Schliesfach Löschen", 500, 16, 110, 22)
    $Button6 = GUICtrlCreateButton("Lagerverwaltung", 720, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $Group7 = GUICtrlCreateGroup("", 360, 280, 280, 135)
    $Button7 = GUICtrlCreateButton("Lagerverwaltung", 375, 300, 250, 40)
    $Button8 = GUICtrlCreateButton("Bankschließfach", 375, 360, 250, 40)
    #endregion GROUP+BUTTONS
    ;------------------------------------------------------------------------------------------
    #region INPUTS, GROUPS, LABELS
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("", 8, 50, 276, 816)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateLabel("Lagerort1", 20, 65, 80, 19)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Input1 = GUICtrlCreateInput("", 100, 64, 170, 21)
    $Group4 = GUICtrlCreateGroup("", 346, 50, 276, 816)
    $Label2 = GUICtrlCreateLabel("Lagerort2", 360, 65, 80, 19)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Input2 = GUICtrlCreateInput("", 440, 64, 170, 21)
    $Group5 = GUICtrlCreateGroup("", 706, 50, 276, 816)
    $Label3 = GUICtrlCreateLabel("Lagerort3", 720, 65, 80, 19)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Input3 = GUICtrlCreateInput("", 800, 64, 170, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group6 = GUICtrlCreateGroup("", 8, 6, 276, 36)
    $Combo1 = GUICtrlCreateCombo("", 100, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo1,_setCombo())
    $Combo2 = GUICtrlCreateCombo("", 100, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo2,_setCombo())
    $Label4 = GUICtrlCreateLabel("Account", 22, 17, 80, 19)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group10 = GUICtrlCreateGroup("", 35, 200, 220, 364)
    $Group11 = GUICtrlCreateGroup("", 275, 200, 220, 364)
    $Group12 = GUICtrlCreateGroup("", 505, 200, 220, 364)
    $Group13 = GUICtrlCreateGroup("", 735, 200, 220, 364)
    #endregion INPUTS, GROUPS, LABELS
    ;---------------------------------------------------------------------------------------------
    #region HIDE
    GUICtrlSetState($Group1, $GUI_HIDE)
    GUICtrlSetState($Group2, $GUI_HIDE)
    GUICtrlSetState($Group3, $GUI_HIDE)
    GUICtrlSetState($Group4, $GUI_HIDE)
    GUICtrlSetState($Group5, $GUI_HIDE)
    GUICtrlSetState($Group6, $GUI_HIDE)
    GUICtrlSetState($Group10, $GUI_HIDE)
    GUICtrlSetState($Group11, $GUI_HIDE)
    GUICtrlSetState($Group12, $GUI_HIDE)
    GUICtrlSetState($Group13, $GUI_HIDE)
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_HIDE)
    GUICtrlSetState($Button3, $GUI_HIDE)
    GUICtrlSetState($Button4, $GUI_HIDE)
    GUICtrlSetState($Button5, $GUI_HIDE)
    GUICtrlSetState($Button6, $GUI_HIDE)
    GUICtrlSetState($Button9, $GUI_HIDE)
    GUICtrlSetState($Label1, $GUI_HIDE)
    GUICtrlSetState($Label2, $GUI_HIDE)
    GUICtrlSetState($Label3, $GUI_HIDE)
    GUICtrlSetState($Input1, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Input3, $GUI_HIDE)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_HIDE)
    #endregion HIDE
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button7
    _Buton7()
    Case $Button8
    _Buton8()
    Case $Button6
    _Buton7()
    Case $Button1
    Exit
    Case $Combo1
    _LoadData()
    Case $Combo2
    _LoadDataSchliessfach()
    Case $Button2
    _SaveData()
    Case $Button9
    _SaveDataSchliessfach()
    Case $Button3
    _Buton8()
    Case $Button4
    _deleteAccount()
    EndSwitch
    WEnd
    Func _Buton8()
    GUICtrlSetState($Button7, $GUI_HIDE)
    GUICtrlSetState($Button8, $GUI_HIDE)
    GUICtrlSetState($Group7, $GUI_HIDE)
    GUICtrlSetState($Group1, $GUI_SHOW)
    GUICtrlSetState($Group2, $GUI_SHOW)
    GUICtrlSetState($Group3, $GUI_HIDE)
    GUICtrlSetState($Group4, $GUI_HIDE)
    GUICtrlSetState($Group5, $GUI_HIDE)
    GUICtrlSetState($Group6, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_HIDE)
    GUICtrlSetState($Button4, $GUI_HIDE)
    GUICtrlSetState($Button5, $GUI_SHOW)
    GUICtrlSetState($Button6, $GUI_SHOW)
    GUICtrlSetState($Group6, $GUI_SHOW)
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_HIDE)
    GUICtrlSetState($Button9, $GUI_SHOW)
    GUICtrlSetState($Label1, $GUI_HIDE)
    GUICtrlSetState($Label2, $GUI_HIDE)
    GUICtrlSetState($Label3, $GUI_HIDE)
    GUICtrlSetState($Input1, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Input3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_SHOW)
    GUICtrlSetState($Group10, $GUI_SHOW)
    GUICtrlSetState($Group11, $GUI_SHOW)
    GUICtrlSetState($Group12, $GUI_SHOW)
    GUICtrlSetState($Group13, $GUI_SHOW)
    GUICtrlSetState($aSpalte1, $GUI_HIDE)
    _generateSchliessfachSpalte($aSchliesfach1,40)
    _generateSchliessfachSpalte($aSchliesfach2,280)
    _generateSchliessfachSpalte($aSchliesfach3,510)
    _generateSchliessfachSpalte($aSchliesfach4,740)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _Buton7()
    GUICtrlSetState($Button5, $GUI_HIDE)
    GUICtrlSetState($Button6, $GUI_HIDE)
    GUICtrlSetState($Button7, $GUI_HIDE)
    GUICtrlSetState($Button8, $GUI_HIDE)
    GUICtrlSetState($Group7, $GUI_HIDE)
    GUICtrlSetState($Group1, $GUI_SHOW)
    GUICtrlSetState($Group2, $GUI_SHOW)
    GUICtrlSetState($Group3, $GUI_SHOW)
    GUICtrlSetState($Group4, $GUI_SHOW)
    GUICtrlSetState($Group5, $GUI_SHOW)
    GUICtrlSetState($Group6, $GUI_SHOW)
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    GUICtrlSetState($Button4, $GUI_SHOW)
    GUICtrlSetState($Label1, $GUI_SHOW)
    GUICtrlSetState($Label2, $GUI_SHOW)
    GUICtrlSetState($Label3, $GUI_SHOW)
    GUICtrlSetState($Input1, $GUI_SHOW)
    GUICtrlSetState($Input2, $GUI_SHOW)
    GUICtrlSetState($Input3, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_SHOW)
    GUICtrlSetState($Label4, $GUI_SHOW)
    _generateLagerSpalte($aSpalte1,15)
    _generateLagerSpalte($aSpalte2,355)
    _generateLagerSpalte($aSpalte3,715)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,80)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateSchliessfachSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    $Fach = GUICtrlCreateLabel(' Fach ' ,$left,216+$Abstand,40)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",45+$left,216+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _LoadData()
    GUICtrlSetData($Input1,IniRead($DataINI,GUICtrlRead($Combo1),08,''))
    GUICtrlSetData($Input2,IniRead($DataINI,GUICtrlRead($Combo1),09,''))
    GUICtrlSetData($Input3,IniRead($DataINI,GUICtrlRead($Combo1),10,''))
    For $i = 1 To UBound($aSpalte1)-1
    GUICtrlSetData($aSpalte1[$i],IniRead($DataINI,GUICtrlRead($Combo1),1&$i,''))
    GUICtrlSetData($aSpalte2[$i],IniRead($DataINI,GUICtrlRead($Combo1),2&$i,''))
    GUICtrlSetData($aSpalte3[$i],IniRead($DataINI,GUICtrlRead($Combo1),3&$i,''))
    Next
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _LoadDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    GUICtrlSetData($aSchliesfach1[$i],IniRead($DataINI,GUICtrlRead($Combo2),4&$i,''))
    GUICtrlSetData($aSchliesfach2[$i],IniRead($DataINI,GUICtrlRead($Combo2),5&$i,''))
    GUICtrlSetData($aSchliesfach3[$i],IniRead($DataINI,GUICtrlRead($Combo2),6&$i,''))
    GUICtrlSetData($aSchliesfach4[$i],IniRead($DataINI,GUICtrlRead($Combo2),7&$i,''))
    Next
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _SaveData()
    IniWrite($DataINI,GUICtrlRead($Combo1),08,GUICtrlRead($Input1))
    IniWrite($DataINI,GUICtrlRead($Combo1),09,GUICtrlRead($Input2))
    IniWrite($DataINI,GUICtrlRead($Combo1),10,GUICtrlRead($Input3))
    For $i = 1 To UBound($aSpalte1)-1
    IniWrite($DataINI,GUICtrlRead($Combo1),1&$i,GUICtrlRead($aSpalte1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo1),2&$i,GUICtrlRead($aSpalte2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo1),3&$i,GUICtrlRead($aSpalte3[$i]))
    Next
    _clearGUI()
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _SaveDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    IniWrite($DataINI,GUICtrlRead($Combo2),4&$i,GUICtrlRead($aSchliesfach1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),5&$i,GUICtrlRead($aSchliesfach2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),6&$i,GUICtrlRead($aSchliesfach3[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),7&$i,GUICtrlRead($aSchliesfach4[$i]))
    Next
    _clearGUI()
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _deleteAccount()
    IniDelete("data.ini", GUICtrlRead($Combo1))
    _clearGUI()
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _clearGUI()
    GUICtrlSetData($Input1,'')
    GUICtrlSetData($Input2,'')
    GUICtrlSetData($Input3,'')
    GUICtrlSetData($Combo1,'')
    For $i = 1 To UBound($aSpalte1)-1
    GUICtrlSetData($aSpalte1[$i],'')
    GUICtrlSetData($aSpalte2[$i],'')
    GUICtrlSetData($aSpalte3[$i],'')
    Next
    For $i = 1 To UBound($aSchliesfach1)-1
    GUICtrlSetData($aSchliesfach1[$i],'')
    GUICtrlSetData($aSchliesfach2[$i],'')
    GUICtrlSetData($aSchliesfach3[$i],'')
    GUICtrlSetData($aSchliesfach4[$i],'')
    Next
    GUICtrlSetData($Combo1,_setCombo())
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _setCombo()
    Local $Sections = IniReadSectionNames($DataINI)
    Local $SectionString = _ArrayToString($Sections,'|',1,UBound($Sections)-1)
    Return($SectionString)
    EndFunc
    ;-------------------------------------------------------------------------------------------

    [/autoit]

    So, aber nun erstmal zum eigentlichen. Wenn ich das mache so wie du es sagst (habe es mit Func _Button7() getestet) kommt volgender Fehler:
    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(191,37) : WARNING: $aschliesfach: possibly used before declaration.
    GUICtrlSetState($aschliesfach[$i],
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(191,37) : ERROR: $aschliesfach: undeclared global variable.
    GUICtrlSetState($aschliesfach[$i],
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^

    Ich hoffe auch dafür hast du eine Lösung!

    Mfg Ghostleader

  • Ok den Fehler habe ich gefunden:

    Spoiler anzeigen
    [autoit]

    Func _Button7()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach1[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach2)-1
    GUICtrlSetState($aschliesfach2[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach3)-1
    GUICtrlSetState($aschliesfach3[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach4)-1
    GUICtrlSetState($aschliesfach4[$i], $GUI_HIDE)
    Next
    ....
    Func _Button8()
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte2) - 1
    GUICtrlSetState($aSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte3) - 1
    GUICtrlSetState($aSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte4) - 1
    GUICtrlSetState($aSpalte4[$i], $GUI_HIDE)
    Next
    ...

    [/autoit]

    Zum Code Umstrukturieren, ich würde alle nicht 4 Arrays (aSpalte1,aSpalte3,aSpalte3,aSpalte4) machen sondern ein mehrdimensionales array
    aSpalte [37][4], dürfte weniger Code sein, dasselbe dann auch bei aschliesfach.

    Allerdings ist es relativ viel Code, der dann umgewandelt werden muss.

    Ist deine entscheidung ;)

    --EDIT-- Weiterhin könntest du auch alle Labels in ein Array packen, dann alle deaktivieren und nur die aktivieren, die du brauchst

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Global $Labelarray[50]

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

    $Form1 = GUICreate("Form1", 990, 900, 192, 5)
    $left = 0
    $top = 0
    For $i = 0 To 49
    $Labelarray[$i] = GUICtrlCreateLabel("Label" & $i, $left, $top, 50, 15)
    $top += 17
    Next
    $Button = GUICtrlCreateButton("button", 50, $top, 100, 50)
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button ;Button wird gedrückt
    For $i = 0 To UBound($Labelarray) - 1 ;geht alle Labels durch
    Switch $i
    Case 1, 5, 7, 16, 25, 45 ; bei den Labels nichts machen

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

    Case Else
    GUICtrlSetState($Labelarray[$i], $GUI_HIDE) ; alle anderen verstecken
    EndSwitch
    Next
    EndSwitch
    WEnd

    [/autoit]

    Ich bin übers Wochenende nicht am PC,
    wenn du möchtest kann ich den Code aber am Montag/Dienstag umschreiben

  • Hallo TheLuBu,

    danke für deine Super Hilfe und auch für die Tipps für die Änderungen! Ich werde mir das sobald ich alles fertig habe mal zur gemüte nehmen und dann mal sehen in wie weit ich es umgebaut bekomme!
    Nun nochmal fix zurück. Also dank deiner Verbesserung verschwindet nun alles ausser das Label zur jeweiligen Funktion.
    Bsp.

    [autoit]

    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,80)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc

    [/autoit]


    Hier bleibt bei aufrufen von Button8 dann das Label (Lagerplatz) da ebenso ist es bei Button 7 mit Fach.

    Hättest dafür vielleicht auch noch ne lösung?
    Habe schon versucht das Label ausserhalb der Funktion zu setzen, jedoch kommt ja dann der Fehler das er unteranderem mit ,$left, nich anfangen kann!

    Mfg Ghostleader

  • Du musst die Labels ebenfalls in einem Array speichern, damit du die verstecken kannst. Mach es einfach genau so wie bei den Inputs

  • Hallo TheLuBu,

    also meinst du ich soll als bsp. für die Lagerspalte aus dieser Funktion:

    [autoit]

    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    $ArrayToUse[$i] = GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,80)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc

    [/autoit]

    2 getrennte machen verstehe ich das richtig? Also einmal fürs Label und einmal fürs Input?

    Mfg Ghostleader

  • [autoit]

    Func _generateLagerSpalte(ByRef $ArrayToUse, ByRef $ArrayToUse2 ,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    $ArrayToUse2[$i] = GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,80)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc

    [/autoit]
  • Hallo TheLuBu,

    ach so meinst du das, du glaubst garnicht wie ich gerade rum gedoctert habe ;) .

    Aber so gibt es Probleme:

    Spoiler anzeigen

    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(240,71) : ERROR: _generateLagerSpalte() called by a previous line with 2 arg(s). Min = 3. First previous line calling this Func is 234.
    Func _generateLagerSpalte(ByRef $ArrayToUse, ByRef $ArrayToUse2,$left)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(240,71) : ERROR: _generateLagerSpalte() previously called with Const or expression on ByRef param(s).
    Func _generateLagerSpalte(ByRef $ArrayToUse, ByRef $ArrayToUse2,$left)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(234,37) : REF: first call to _generateLagerSpalte().
    _generateLagerSpalte($aSpalte1,15)

    Mfg Ghostleader

  • Lies mal die Fehlermeldung genau, und schau dir die Änderung an, die ich gemacht habe, dann solltest du eigentlich drauf kommen

  • Hallo TheLuBu,

    ich hatte das erstmal aussen vor gelassen und mich um anderes gekümmert.
    Nun habe ich nochmal drüber gesehen, jedoch finde ich immernochnicht heraus was er mir nun sagen möchte nach deiner Änderung.
    Ich hoffe du wirst es mir noch verraten!

    Mfg Ghostleader

  • ok Step By Step ;)

    [autoit]

    _generateLagerSpalte() called by a previous line with 2 arg(s). Min = 3.

    [/autoit]


    Die Funktion _generateLagerSpalte wurde nur mit 2 Parametern aufgerufen, es werden aber 3 gefordert.

    Ich habe deine Funktion um einen weiteren Parameter erweitert, ByRef $ArrayToUse2

    [autoit]

    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(234,37) : REF: first call to _generateLagerSpalte().
    _generateLagerSpalte($aSpalte1,15)

    [/autoit]


    Da haben wir den Funktionsaufruf in Zeile 234, die Funktion wird nur mit ($aSpalte1,15) aufgerufen, es fehlt der 3te Parameter.

    Du musst noch ein weiteres Array übergeben