Mittlere von 3 Spalten wird nicht angezeigt

  • Hallo zusammen,

    ich habe das Problem, das bei meinem Script nur 2 (rechts und links) von 3 Spalten angezeigt werden und ich nicht weiss warum.
    Ich habe nun schon zich mal drüber geschaut, aber irgendwie finde ich den Fehler nicht.
    Hier erstmal das Script:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ComboConstants.au3>
    #include <file.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <INet.au3>

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

    $Form1 = GUICreate("Lagerverwaltung", 850, 800, 0,0)
    GUISetState(@SW_SHOW)

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

    Global $LAGER[200], $CLICKLAGER[200]

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

    $Combo = GUICtrlCreateCombo("Combo1", 350, 20, 200, 35)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo
    LAGERVERWALTUNG()
    EndSwitch
    WEnd

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

    Func LAGERVERWALTUNG()
    For $I = 1 To 3 + 18 * 3 + 64
    Next
    $TEMP1 = GUICtrlCreateLabel(" ", 9, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP2 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 10, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP3 = GUICtrlCreateLabel(" ", 289, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP4 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 290, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP5 = GUICtrlCreateLabel(" ", 569, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP6 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 570, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)

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

    $TEMP7 = GUICtrlCreateLabel(" ", 9, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP8 = GUICtrlCreateLabel(" ", 289, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP9 = GUICtrlCreateLabel(" ", 569, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input1 = GUICtrlCreateInput($LAGER,100, 50, 180, 22)
    $Input2 = GUICtrlCreateInput($LAGER,380, 50, 180, 22)
    $Input3 = GUICtrlCreateInput($LAGER,660, 50, 180, 22)
    For $I = 1 To 108
    If $I < 37 Then
    $TEMP7 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I & ":", 10, 60 + ($I * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input1 = GUICtrlCreateInput($LAGER[$I + 3], 110, 60 + ($I * 18), 170, 18)
    ElseIf $I > 18 And $I < 37 Then
    $TEMP8 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 18 & ":", 290, 60 + (($I - 18) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input2 = GUICtrlCreateInput($LAGER[$I + 3], 390, 60 + (($I - 18) * 18), 170, 18)
    ElseIf $I > 18 And $I < 73 Then
    $TEMP9 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 36 & ":", 570, 60 + (($I - 36) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input3 = GUICtrlCreateInput($LAGER[$I + 3], 670, 60 + (($I - 36) * 18), 170, 18)
    EndIf
    Next
    $TEMP10 = GUICtrlCreateButton("Bankschliessfach", 10, 750, 150, 30)
    EndFunc

    [/autoit]

    Ich hoffe das mir jemand von euch helfen kann und den Fehler findet! Bitte sagt mir auch oder macht es im Code sichtbar wo und was der Fehler war.
    Vielen Dank schonmal im Voraus!

    Mfg Ghostleader

    Einmal editiert, zuletzt von Ghostleader (13. Dezember 2011 um 21:26)

  • Hab etwas gefummelt :P


    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ComboConstants.au3>
    #include <file.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <INet.au3>

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

    $Form1 = GUICreate("Lagerverwaltung", 850, 800, 0,0)
    GUISetState(@SW_SHOW)

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

    Global $LAGER[200], $CLICKLAGER[200]

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

    $Combo = GUICtrlCreateCombo("Combo1", 350, 20, 200, 35)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo
    LAGERVERWALTUNG()
    EndSwitch
    WEnd

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

    Func LAGERVERWALTUNG()
    For $I = 1 To 3 + 18 * 3 + 64
    Next
    $TEMP1 = GUICtrlCreateLabel(" ", 9, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP2 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 10, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP3 = GUICtrlCreateLabel(" ", 289, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP4 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 290, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP5 = GUICtrlCreateLabel(" ", 569, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP6 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 570, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)

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

    $TEMP7 = GUICtrlCreateLabel(" ", 9, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP8 = GUICtrlCreateLabel(" ", 289, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP9 = GUICtrlCreateLabel(" ", 569, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input1 = GUICtrlCreateInput($LAGER,100, 50, 180, 22)
    $Input2 = GUICtrlCreateInput($LAGER,380, 50, 180, 22)
    $Input3 = GUICtrlCreateInput($LAGER,660, 50, 180, 22)
    For $I = 1 To 108
    If $I < 37 Then
    $TEMP7 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I & ":", 10, 60 + ($I * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input1 = GUICtrlCreateInput($LAGER[$I + 3], 110, 60 + ($I * 18), 170, 18)
    ElseIf $I < 73 Then
    $TEMP8 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 36& ":", 290, 60 + (($I - 36) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input2 = GUICtrlCreateInput($LAGER[$I + 3], 390, 60 + (($I - 36) * 18), 170, 18)
    ElseIf $I > 37 And $I < 109 Then
    $TEMP9 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 72 & ":", 570, 60 + (($I - 72) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input3 = GUICtrlCreateInput($LAGER[$I + 3], 670, 60 + (($I - 72) * 18), 170, 18)
    EndIf
    Next
    $TEMP10 = GUICtrlCreateButton("Bankschliessfach", 10, 750, 150, 30)
    EndFunc

    [/autoit]
  • Moin, nur was allgemeines du wirst später Probleme haben deine eingefügten Infos zu Speichern, du überschreibst immer wieder deine $inputX variable somit wird das Control zwar noch angezeigt ist aber keiner Variable mehr zugeordnet, du solltest ein Array in diesem Fall verwenden
    eventuell So :

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ComboConstants.au3>
    #include <file.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <INet.au3>

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

    $Form1 = GUICreate("Lagerverwaltung", 850, 800, 0,0)
    GUISetState(@SW_SHOW)

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

    Global $LAGER[200], $CLICKLAGER[200]
    Global $aSpalte1[37], $aSpalte2[37], $aSpalte3[37]
    $Combo = GUICtrlCreateCombo("Combo1", 350, 20, 200, 35)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo
    LAGERVERWALTUNG()
    _generateLagerSpalte($aSpalte1,10)
    _generateLagerSpalte($aSpalte2,290)
    _generateLagerSpalte($aSpalte3,570)

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

    EndSwitch
    WEnd

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

    Func LAGERVERWALTUNG()
    $TEMP1 = GUICtrlCreateLabel(" ", 9, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP2 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 10, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP3 = GUICtrlCreateLabel(" ", 289, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP4 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 290, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    $TEMP5 = GUICtrlCreateLabel(" ", 569, 49, 87, 24)
    GUICtrlSetBkColor(-1, 0)
    $TEMP6 = GUICtrlCreateLabel(" " & ("Lagerort") & ":", 570, 50, 85, 22)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 7807539)
    #cs
    $TEMP7 = GUICtrlCreateLabel(" ", 9, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP8 = GUICtrlCreateLabel(" ", 289, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TEMP9 = GUICtrlCreateLabel(" ", 569, 59 + 18, 272, 666 - 17)
    GUICtrlSetBkColor(-1, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    #ce
    $Input1 = GUICtrlCreateInput($LAGER,100, 50, 180, 22)
    $Input2 = GUICtrlCreateInput($LAGER,380, 50, 180, 22)
    $Input3 = GUICtrlCreateInput($LAGER,660, 50, 180, 22)
    $TEMP10 = GUICtrlCreateButton("Bankschliessfach", 10, 750, 150, 30)
    #cs
    For $I = 1 To 108
    If $I < 37 Then
    $TEMP7 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I & ":", 10, 60 + ($I * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input1 = GUICtrlCreateInput($LAGER[$I + 3], 110, 60 + ($I * 18), 170, 18)
    ElseIf $I < 73 Then
    $TEMP8 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 36& ":", 290, 60 + (($I - 36) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input2 = GUICtrlCreateInput($LAGER[$I + 3], 390, 60 + (($I - 36) * 18), 170, 18)
    ElseIf $I > 37 And $I < 109 Then
    $TEMP9 = GUICtrlCreateLabel(" " & ("Lagerplatz") & " " & $I - 72 & ":", 570, 60 + (($I - 72) * 18), 99, 17)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $Input3 = GUICtrlCreateInput($LAGER[$I + 3], 670, 60 + (($I - 72) * 18), 170, 18)
    EndIf
    Next

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

    #ce

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

    EndFunc

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

    Func _generateLagerSpalte($ArrayToUse,$left)
    $Abstand = 18
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' Lagerplatz ' & $i,$left,60+$Abstand,90)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetBkColor(-1, 16777215)
    GUICtrlSetColor(-1, 2258739)
    $ArrayToUse[$i] = GUICtrlCreateInput("",100+$left,60+$Abstand,170)
    $Abstand +=18
    Next
    EndFunc

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


    Gruß Marvin

  • Hallo zusammen,

    Kizum
    Danke für deine schnelle Tüftelei! :)

    @Protex
    Danke für deinen Hinweis und deine Hilfe und wie du schon richtig bemerkt hast möchte ich später die Daten der Inputs speichern. Vielleicht könntest du mir dazu noch ne Hilfestellung geben as wäre net!

    In der Combo soll man 20 Namen eingeben können und für jeden einzelnem Namen sollen die 3 spallten ausgefüllt werden können, dh.
    Ohne Name sollen lehre Spalten angezeigt werden.
    Name1 + alle drei Spalten ausfüllen und speichern.
    Name2 + alle drei Spalten ausfüllen und speichern.
    Usw....
    Wenn ich dann den gespeicherten Namen1 auswähle sollen die dazugehörigen 3 Spalten aufgerufen werden.
    Noch dazu zu sagen ist das die User selber in die Felder eintragen/bearbeiten und Namen vergeben sollen/können.

    So das wars erstmal und ich hoffe du kannst mir da ein Paar tips geben!

    Mfg Ghostleader

  • Hab dir ja deine GUI schon verbessert , die Inputs sind immer gleich den Labels also in angenommen du möchtest Label 15 auslesen in der Spalte 2 ist die variable dafür $aSpalte2[15] (leicht zu verstehen oder) :D
    das auslesen der Inputs gehts mit (Guictrlread($input)) und schreiben zb in eine INI wäre mit (iniwrite bzw iniread) den Rest kannste dir eig ableiten :)

    Gruß

  • Hallo,

    Danke ersmal für deine schnelle Antwort.
    Ich werde es mal so versuchen.

    2 Fragen hätte ich noch:

    1. Warum werden bei deiner Veränderung des Scriptes die Linien der Spaltern erst bei Mousehover richtig sichtbar?
    2. Muss ich da für jeden namen ne eigene Ini machen wo dann die daten = Name und Infos der Inputs gespeichert werden und wenn ja, wie kann ich es machen das automatisch bei jeder neuen ini (also wenn es mit Name=Ini 1) vorlaufend gespeichert wird also ini1,2,3,4,5...20?

    Mfg Ghostleader

  • Also

    1. Weil die Input Boxxen sich überlagern, einfach den Abstand vergrößern und Problem gelöst
    2. Schmeiß mal alle includes raus du brauchst nur #include <GUIConstantsEx.au3>
    3. ich würde die INI so aufbauen

    Spoiler anzeigen


    Database.ini

    [Daten]
    101 = Inhalt
    102 = Inhalt
    ...
    109 = Inhalt
    ..
    119 = Inhalt
    ..
    211 = inhalt
    ..

    wobei die erste Zahl für die Spalte steht und 2-3 Zahl für das Input

    Gruß Marvin

  • Hallo.

    Danke wieder für deine Schnelle Antwort :!:

    Aber ich verstehe noch net ganz wie das nun dann dem Namen zugeordnet wird, den ich dann in der Combo eingebe zum speichern, denn den brauche ich ja dann wieder wenn ich ihn auswähle damit auch die dazugehörigen 3 Spalten ausgewählt werden.

    Mfg Ghostleader

    Ps. Ich weiss bin gerade nen schwieriger Fall :whistling:

  • na dann schreib dir halt für jeden Neuen EIntrag der in die Combo gelesen wird immer eine Section und lese diese dann aus

  • Ich persönlich würd die .ini anders aufbauen:

    Inhalte aus Spalte 1 in Sektion 1, Werte von 1-xx
    Inhalte aus Spalte 2 in Sektion 2, Werte von 1-xx
    ...

    Spoiler anzeigen


    Database.ini

    [Spalte 1]
    1=Inhalt
    2=Inhalt
    ...

    [Spalte 2]
    1=Inhalt
    2=Inhalt
    ...

    [Spalte 3]
    1=Inhalt
    2=Inhalt
    ...

    UNPLEASANT SPOILER

    You just lost the game!

  • @Shadow.. das wird nichts oder er macht für jeden Eintrag im Combo dann eine neue INI Datei, will er aber alles in einer haben muss er die Einträge der Combo als Section Definieren

  • Dann halt so:

    Spoiler anzeigen

    Database.ini

    [Combo1 Spalte 1]
    1=Inhalt
    2=Inhalt
    ...

    [Combo 1 Spalte 2]
    1=Inhalt
    2=Inhalt
    ...

    [Combo 1 Spalte 3]
    1=Inhalt
    2=Inhalt
    ...

    [Combo2 Spalte 1]
    1=Inhalt
    2=Inhalt
    ...

    [Combo 2 Spalte 2]
    1=Inhalt
    2=Inhalt
    ...

    [Combo 2 Spalte 3]
    1=Inhalt
    2=Inhalt
    ...

    Wobei sich mir grad die Frage stellt, ob die 3 Spalten tatsächlich getrennt gespeichert werden sollen/müssen

    UNPLEASANT SPOILER

    You just lost the game!

  • Danke ihr beiden,

    shadow667

    zu deiner Frage (Wobei sich mir grad die Frage stellt, ob die 3 Spalten tatsächlich getrennt gespeichert werden sollen/müssen):

    Also in der Combo sollen bis 20 Namen eingeschrieben werden können wobei 1 Name = 1 Acoount darstellt wozu dann (pro name) die 3 Spalten gehören denn man kann 3 Lagerhäuser pro Name = Account haben deswegen die drei Spalten = drei Lagerhäuser!

    Ich hoffe du weisst wie ich das meine!

    Mfg Ghostleader

    Ps. wie müsste ich es ändern damit wenn ich oben in die Combo einen Namen eingebe er auch die 3 spalten anzeigt denn bisher macht er es net wenn ich nen namen eingebe nur wenn ich combo wähle also was schon drin steht!

  • Ich weiß nicht wie fit du mit SQL bist, aber ich benutze in letzter Zeit sehr viel die SQLite Funktionen.
    Und bei deinem "Problem" finde ich eine Datenbanklösung schon vorteilhaft, besonders wenn es zur Geschwindigkeit kommt ist eine SQL Abfrage deutlich schneller als das durchsuchen einer INI Datei oder eines Arrays

  • Ok, hab's verstanden... Für diesen Fall ist die .ini-Version von Protex letztendlich doch am besten geeignet

    [Account 1]
    101 = Inhalt
    102 = Inhalt
    ...
    201 = Inhalt
    usw

    [Account 2]
    ...

    UNPLEASANT SPOILER

    You just lost the game!

  • Na weil du ein QuizScript hochgeladen hast 8|

    Vielleicht bin ich auch wieder verwirrt und erkenne den Zusammenang nicht :D


    Code
    FrageDing.au3 (53,64 kB - 1 mal heruntergeladen - zuletzt: Heute, 15:08)