1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Ghostleader

Beiträge von Ghostleader

  • Func beim Wechsel nicht anzeigen

    • Ghostleader
    • 15. Dezember 2011 um 23:36

    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

  • Func beim Wechsel nicht anzeigen

    • Ghostleader
    • 15. Dezember 2011 um 23:05

    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

  • Func beim Wechsel nicht anzeigen

    • Ghostleader
    • 15. Dezember 2011 um 18:58

    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?

  • Func beim Wechsel nicht anzeigen

    • Ghostleader
    • 15. Dezember 2011 um 18:38

    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

  • zuvor erstellten account kommplett aus ini löschen aber wie

    • Ghostleader
    • 14. Dezember 2011 um 09:58

    Hallo,

    asso meinst das ok dann werde ich das gleich mal machen schande über mich :S .

    Mfg Ghostleader

  • zuvor erstellten account kommplett aus ini löschen aber wie

    • Ghostleader
    • 14. Dezember 2011 um 09:47

    Hallo ihr 2,

    vielen dank für eure Antworten.

    Kizum

    Danke dir funzt einwandfrei!

    @Protex

    Hast du auch einen Vorschlag, bzw. eine besserere Alternative für mich?

    Mfg Ghostleader

  • zuvor erstellten account kommplett aus ini löschen aber wie

    • Ghostleader
    • 14. Dezember 2011 um 00:37

    Hallo zusammen,

    nachdem ich das script nun nur noch angepasst habe wie es am günstigen ist, bin ich darauf gestossen das die funktion der account löschung fehlt!

    Da dies hier aber nicht normal geschrieben ist nach Sectionen (verbessert mich wenn ich mich irre), verzweifle ich gerade bei den Versuchen dieses hin zu bekommen.

    Gelöscht aus der ini bei buttonklick soll werden:
    Name in der Combo + alle 3 spalten + alle 3 lagerorte kurz geagt aless von dem in der combo angezeigtem account.

    Hier nochmal das script:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    ;------------------------------------------------------------------------------------------
    Global $aSpalte1[37], $aSpalte2[37], $aSpalte3[37]
    Global $DataINI = 'data.ini'
    ;------------------------------------------------------------------------------------------
    $Form1 = GUICreate("Form1", 990, 900, 192, 5)
    $Form1= GUICtrlCreatePic("bilder\Background XYBotchen.tgx", 0, 0, 1050, 900)
    GUICtrlSetState(-1, $GUI_DISABLE)
    ;------------------------------------------------------------------------------------------
    $Group1 = GUICtrlCreateGroup("", 346, 6, 276, 36)
    $Button3 = GUICtrlCreateButton("Neuer Acc", 360, 16, 110, 22)
    $Button2 = GUICtrlCreateButton("Speichern", 500, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $Group2 = GUICtrlCreateGroup("", 706, 6, 276, 36)
    $Button1 = GUICtrlCreateButton("Exit", 860, 16, 110, 22)
    $Button4 = GUICtrlCreateButton("Acc Löschen",720, 16, 110, 22)

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

    ;------------------------------------------------------------------------------------------
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("", 8, 50, 276, 816)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateLabel("Lagerort1", 20, 65, 80, 19)
    $Input1 = GUICtrlCreateInput("", 100, 64, 170, 21)
    $Group4 = GUICtrlCreateGroup("", 346, 50, 276, 816)
    $Label2 = GUICtrlCreateLabel("Lagerort2", 360, 65, 80, 19)
    $Input2 = GUICtrlCreateInput("", 440, 64, 170, 21)
    $Group5 = GUICtrlCreateGroup("", 706, 50, 276, 816)
    $Label3 = GUICtrlCreateLabel("Lagerort3", 720, 65, 80, 19)
    $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())
    $Label2 = GUICtrlCreateLabel("Eintrag", 22, 17, 80, 19)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    _generateLagerSpalte($aSpalte1,20)
    _generateLagerSpalte($aSpalte2,360)
    _generateLagerSpalte($aSpalte3,720)
    GUISetState(@SW_SHOW)
    ;------------------------------------------------------------------------------------------
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button1
    Exit
    Case $Combo1
    _LoadData()
    Case $Button2
    _SaveData()
    Case $Button3
    _clearGUI()
    Case $Button4
    _deleteAccount()
    EndSwitch
    WEnd
    ;------------------------------------------------------------------------------------------
    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' Lagerplatz ' & $i,$left,100+$Abstand,90)
    $ArrayToUse[$i] = GUICtrlCreateInput("",80+$left,100+$Abstand,170)
    $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 _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 _deleteAccount()
    IniDelete("data.ini", "Section1")
    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
    GUICtrlSetData($Combo1,_setCombo())
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _setCombo()
    Local $Sections = IniReadSectionNames($DataINI)
    Local $SectionString = _ArrayToString($Sections,'|',1,UBound($Sections)-1)
    Return($SectionString)
    EndFunc

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

    Im anhang noch ne ini zum testen.

    Mfg Ghostleader

    Dateien

    data.ini 1,62 kB – 223 Downloads
  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 21:26

    Hallo Protex,

    danke für deine Arbeit die du dir gemacht hast, was mir meine weitere Arbeit ungemein erleichtert!

    Ich baue es noch etwas um aber für den Grund ist es super!

    Mfg Ghostleader

  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 11:32

    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!

  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 11:10

    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:

  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 10:53

    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

  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 10:37

    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

  • Mittlere von 3 Spalten wird nicht angezeigt

    • Ghostleader
    • 13. Dezember 2011 um 01:14

    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

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 19. November 2011 um 22:07

    Hallo autoBert,

    wiedermal DANKE.

    In dem Spiel wird manchmal eine Ware angesagt das heist der Preis der des VK Verdoppelt sich dann dafür der Schalter.

    Zu deiner Idee (Trotzdem wäre es nicht sinnvoller dies pro Ware zu machen, bzw. dem Anwender zu ermöglichen die Menge je Ware zu bestimmen die er für die Fahrt bunkern will?) muss ich sagen das dies natürlich eine sehr schöne ist.
    Nun stehe ich natürlich davor wie mache ich das am besten hinter jede Ware ne Inputbox damit er eintragen kann wieviel er mitnehmen möchte und dann noch nen button dahinter damit er das auch berechnen kann dann was er noch an platz hat um noch as anderes mit zu nehmen?

    Hört sich für mich gerade etwas kompliziert an muss ich sagen, dafür das des alles gerade noch etwas neu ist für mich!

    Mfg Ghostleader

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 19. November 2011 um 15:30

    Hallo autoBert,

    vielen vielen DANK wiedermal.

    Ich habe den Fehler bei mir anhand deines Einbaus gefunden. ---> siehe Spoiler

    Spoiler anzeigen
    [autoit]

    ; ICH HATTE VOLGENDES GESETZT
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow], Int($Laderaumfrei) / GUICtrlRead($Gewicht[$iRow]))

    ; DU HAST VOLGENDES GESETZT
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow],$anzahl)

    ; DAS WAR DER GANZE FEHLER!!!

    [/autoit]

    Langsam muss ich sagen steige ich dahinter wie du hier geskriptet hast, vorallem dank deiner tollen erklährungen! Wenn man erstmal dahinter steigt ist es eigentlich garnet so schwer wie du schon sagtest!

    Habe noch etwas hinzugefügt im Code. Eine Combobox die Ja und Nein beinhaltet und wenn eine Ware angesagt ist dann stellt man auf ja und es wird der Gewinn verdoppelt.

    Hier das gesammte Skript. Du kannst ja mal rein schauen wenn du magst und mir sagen ob es ok so ist oder ob man es besser machen könnte vom coden her!

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <ComboConstants.au3>
    #include <file.au3>
    #include <Array.au3>

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

    Global $bDebug = False
    Global $sStart, $sZiel

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

    Local $aTmp

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

    #Region
    _FileReadToArray(@ScriptDir & "\Waren.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "Waren.CSV")

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

    $aSplit = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    $iCols = $aSplit[0]
    If $bDebug Then _ArrayDisplay($aSplit, "Waren Colheader")

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

    Global $aWaren[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aWaren[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    If $bDebug Then _ArrayDisplay($aWaren, "Waren")
    #EndRegion
    #Region
    _FileReadToArray(@ScriptDir & "\VK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "VK.CSV")

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

    $aOrte = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    If $bDebug Then _ArrayDisplay($aOrte, "Orte aus VK.CSV")
    $iCols = $aOrte[0]

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

    Global $aVK[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aVK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    $aVK[0][0]=" Waren/Städte"
    If $bDebug Then _ArrayDisplay($aVK, "Verkaufspreise")
    #EndRegion

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

    #Region
    _FileReadToArray(@ScriptDir & "\EK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "EK.CSV")
    $iCols = $aOrte[0]

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

    Global $aEK[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aEK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    $aEK[0][0]=" Waren/Städte"
    If $bDebug Then _ArrayDisplay($aEK, "Einkaufspreise")
    #EndRegion

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

    $Form1 = GUICreate("Stadtwaren Rechner", 900, 480, 380, 230)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Form1 = GUICtrlCreatePic("Handel2.jpg", 0, 0, 900, 480)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    Local $sPleaseSelect = " Wähle Stadt"
    Local $sComboText = ""
    For $i = 1 To $aOrte[0]
    $sComboText &= $aOrte[$i] & "|"
    Next
    $sComboText &= $sPleaseSelect
    $Startstadt = GUICtrlCreateCombo("", 20, 75, 110, 130, BitOR($CBS_SORT, $CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL, $WS_TABSTOP))
    GUICtrlSetData(-1, $sComboText, $sPleaseSelect)
    $Zielstadt = GUICtrlCreateCombo("", 147, 75, 110, 25, BitOR($CBS_SORT, $CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL, $WS_TABSTOP))
    GUICtrlSetData(-1, $sComboText, $sPleaseSelect)
    $AngesagteWare = GUICtrlCreateCombo("Nein", 625, 75, 75, 130)
    GUICtrlSetData(-1, "Ja")

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

    GUISetState(@SW_SHOW)

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

    Local $Ergebnis[8], $Ware[8], $Stufe[8], $Gewicht[8], $EK[8], $VK[8], $AnzahlStuk[8], $iHeight = 200
    For $i = 1 To 7
    $Ware[$i] = GUICtrlCreateLabel("", 30, $iHeight, 190, 40)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Stufe[$i] = GUICtrlCreateLabel("", 240, $iHeight, 25, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewicht[$i] = GUICtrlCreateLabel("", 300, $iHeight, 80, 20, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $EK[$i] = GUICtrlCreateLabel("", 435, $iHeight, 50, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $VK[$i] = GUICtrlCreateLabel("", 540, $iHeight, 60, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ergebnis[$i] = GUICtrlCreateLabel("", 710, $iHeight, 100, 35, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $AnzahlStuk[$i] = GUICtrlCreateLabel("", 655, $iHeight, 45, 35, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $iHeight += 45
    Next

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

    #Region Übersicht Überschriften Labels
    $Warenname = GUICtrlCreateLabel("Ware", 80, 160, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Warenstufe = GUICtrlCreateLabel("Stufe", 225, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Einkauf = GUICtrlCreateLabel("EK-Preis", 415, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Verkauf = GUICtrlCreateLabel("VK-Preis", 530, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Stuk = GUICtrlCreateLabel("Anzahl-Stück", 620, 160, 125, 35)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewin = GUICtrlCreateLabel("Gewinn", 745, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewichtname = GUICtrlCreateLabel("Gewicht", 310, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Von = GUICtrlCreateLabel("Von", 45, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Nach = GUICtrlCreateLabel("Nach", 172, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladung = GUICtrlCreateLabel("Lade-Kapazität", 278, 50, 160, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladungbelegt = GUICtrlCreateLabel("Belegter-Laderaum", 427, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $WareAngesagt = GUICtrlCreateLabel("Angesagte-Ware", 595, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Listen = GUICtrlCreateLabel("Listen Übersicht", 743, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    #Region Buttons
    $ListeEK = GUICtrlCreateButton("Liste Einkaufspreise", 745, 75, 130, 20)
    $ListeVK = GUICtrlCreateButton("Liste Verkaufspreise", 745, 105, 130, 20)
    #EndRegion Buttons

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

    $InputLadung = GUICtrlCreateInput("0", 275, 75, 130, 21)
    $InputLadungbelegt = GUICtrlCreateInput("0", 438, 75, 130, 21)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Startstadt, $Zielstadt
    _Berechnung($nMsg)
    Case $ListeEK
    _ArraySort($aEK)
    _ArrayDisplay($aEK, "Einkaufspreise sortiert nach Warenbezeichnung ")
    Case $ListeVK
    _ArrayDisplay($aVK, "Verkaufspreise sortiert nach Warenbezeichnung")
    EndSwitch
    WEnd

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

    Func _Berechnung($nArt)
    If $nArt = $Startstadt Then
    $sStart = GUICtrlRead($Startstadt)
    If $sStart = $sPleaseSelect Then Return
    $iStart = _ArraySearch($aOrte, $sStart) - 1
    If $bDebug Then ConsoleWrite("Startiindex: " & $iStart & @TAB & $aEK[0][$iStart] & @CRLF)
    If $iStart < 0 Then
    MsgBox(16, "Fehler:", "Ware nicht im Einkaufsarray gefunden!")
    Return
    EndIf
    $sColSortOrder = $iStart & "%N|0"
    For $i = 1 To UBound($aEK, 2) - 1
    If $i <> $iStart Then $sColSortOrder &= "|" & $i
    Next
    _arraySort2D_MC($aEK, $sColSortOrder)
    $iUBoundEK = UBound($aEK) - 8
    For $iRow = 1 To 6
    $iEK = $aEK[$iUBoundEK + $iRow][$iStart]
    $sWare = $aEK[$iUBoundEK + $iRow][0]
    GUICtrlSetData($Ware[$iRow], $sWare)
    GUICtrlSetData($EK[$iRow], $iEK)
    $iWare = _ArraySearch($aWaren, $aEK[$iUBoundEK + $iRow][0])
    If $bDebug Then ConsoleWrite($iWare & " " & $aWaren[$iWare][1] & @CRLF)
    If $iWare < 0 Then
    MsgBox(16, "Fehler:", $aEK[$iUBoundEK + $iRow] & " nicht im Warenarray gefunden!")
    GUICtrlSetData($Gewicht[$iRow], "")
    GUICtrlSetData($Stufe[$iRow], "")
    Else
    GUICtrlSetData($Gewicht[$iRow], $aWaren[$iWare][1])
    GUICtrlSetData($Stufe[$iRow], $aWaren[$iWare][2])
    EndIf
    GUICtrlSetData($VK[$iRow], "")
    GUICtrlSetData($Ergebnis[$iRow], "")
    Next
    If $bDebug Then _ArrayDisplay($aEK, "Einkaufspreise sortiert für " & $aEK[0][$iStart])
    EndIf
    If $nArt = $Zielstadt Then
    $sZiel = GUICtrlRead($Zielstadt)
    If $sZiel = $sStart Or $sZiel = "" Or $sZiel = $sPleaseSelect Then
    For $iRow = 1 To 6
    GUICtrlSetData($VK[$iRow], "---")
    GUICtrlSetData($Ergebnis[$iRow], "---")
    Next
    Return
    EndIf
    $iZiel = _ArraySearch($aOrte, $sZiel) - 1
    If $bDebug Then ConsoleWrite($iZiel & @TAB & $aVK[0][$iZiel] & @CRLF)
    If $iZiel < 0 Then
    MsgBox(16, "Fehler:", "Ware nicht im Verkaufsarray gefunden!")
    Return
    EndIf
    For $iRow = 1 To 6
    $sWare = GUICtrlRead($Ware[$iRow])
    $iWare = _ArraySearch($aVK, $sWare)
    If $iWare < 0 Then
    GUICtrlSetData($VK[$iRow], "")
    Else
    $sWare = GUICtrlRead($Ware[$iRow])
    $iWare = _ArraySearch($aVK, $sWare)
    If $bDebug Then ConsoleWrite($iWare & " " & $aVK[$iWare][0] & @CRLF)
    GUICtrlSetData($VK[$iRow], $aVK[$iWare][$iZiel])
    EndIf
    Next
    If $bDebug Then _ArrayDisplay($aVK, "Verkaufspreise sortiert nach Warenbezeichnung")
    EndIf
    $Laderaumfrei = GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)
    If Int($Laderaumfrei) <= 0 Then Return
    For $iRow = 1 To 6
    $anzahl = Int($Laderaumfrei / GUICtrlRead($Gewicht[$iRow]))
    $iVK = Number(GUICtrlRead($VK[$iRow]))
    $iEK = Number(GUICtrlRead($EK[$iRow]))
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow],$anzahl)
    EndIf
    If GUICtrlRead($AngesagteWare) = "Nein" And $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl)
    Else
    If GUICtrlRead($AngesagteWare) = "Ja" And $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl * 2)
    Else
    GUICtrlSetData($Ergebnis[$iRow], "N/A")
    EndIf
    If $bDebug Then ConsoleWrite(GUICtrlRead($Ware[$iRow]) & @TAB & "VK: " & $iVK & @TAB & "EK: " & GUICtrlRead($EK[$iRow]) & @TAB & "Anzahl: " & $anzahl & @CRLF)
    EndIf
    Next
    EndFunc

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

    Func _arraySort2D_MC(ByRef $avArray, $ColOrder = "")
    $aCols = StringSplit($ColOrder, "|")
    If $aCols[0] <> UBound($avArray, 2) Then
    MsgBox(16, "Fehler:", "unterschiedliche Spaltenanzahl!")
    Return 0
    EndIf
    Local $aColformat = $aCols
    Local $sRow
    For $i = 1 To $aColformat[0]
    $aCols[$i] = StringReplace($aCols[$i], "N", "")
    $aCols[$i] = StringReplace($aCols[$i], "D", "")
    Next
    _ArrayDelete($aColformat, 0)
    _ArrayDelete($aCols, 0)
    Local $iCols = UBound($aColformat)
    For $i = 0 To UBound($avArray) - 1
    $sRow = ""
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringUpper(StringRight($aColformat[$j], 1))
    Case "N"
    $sRow &= StringFormat("%99s", $avArray[$i][$iCol])
    Case "D"
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    Case "G"
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= StringRight("0" & $aDate[2], 2) & "." & StringRight("0" & $aDate[1], 2) & "." & $aDate[3]
    Case Else
    $sRow &= $avArray[$i][$iCol]
    EndSwitch
    If $j <> $iCols - 1 Then $sRow &= "|"
    Next
    $avArray[$i][0] = $sRow
    Next
    _ArraySort($avArray)
    For $i = 0 To UBound($avArray) - 1
    $aSplit = StringSplit($avArray[$i][0], "|", 2)
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringRight($aColformat[$j], 1)
    Case "N"
    $avArray[$i][$iCol] = StringStripWS($aSplit[$j], 1)
    Case "D"
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    Case "G"
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[2] & "." & $aDate[1] & "." & $aDate[3]
    Case Else
    $avArray[$i][$iCol] = $aSplit[$j]
    EndSwitch
    Next
    Next
    Return 1
    EndFunc

    [/autoit]


    Eine Frage die ich vorerst noch hätte ist ob man es nicht so machen kann das wenn man start und ziehlstadt schon ausgewählt hat, man dann angesagte ware auf je setzt das dies gleich aktualisiert wird, denn momentan muss man dann immer nochmal eine stadt vor und dann wieder zurück zum aktualisieren!

    Mfg Ghostleader

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 19. November 2011 um 11:36

    Hallo autoBert,

    vielen Dank wieder für deine schnelle und tolle Antwort.

    Ich verwende wenn ich mich nicht irre den letzten Code siehe hier:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <ComboConstants.au3>
    #include <file.au3>
    #include <Array.au3>

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

    Global $bDebug = False
    Global $sStart, $sZiel

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

    Local $aTmp

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

    #Region
    _FileReadToArray(@ScriptDir & "\Waren.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "Waren.CSV")

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

    $aSplit = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    $iCols = $aSplit[0]
    If $bDebug Then _ArrayDisplay($aSplit, "Waren Colheader")

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

    Global $aWaren[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aWaren[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    If $bDebug Then _ArrayDisplay($aWaren, "Waren")
    #EndRegion
    #Region
    _FileReadToArray(@ScriptDir & "\VK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "VK.CSV")

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

    $aOrte = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    If $bDebug Then _ArrayDisplay($aOrte, "Orte aus VK.CSV")
    $iCols = $aOrte[0]

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

    Global $aVK[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aVK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    $aVK[0][0]=" Waren/Städte"
    If $bDebug Then _ArrayDisplay($aVK, "Verkaufspreise")
    #EndRegion

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

    #Region
    _FileReadToArray(@ScriptDir & "\EK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "EK.CSV")
    $iCols = $aOrte[0]

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

    Global $aEK[$iRows][$iCols]

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

    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aEK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    $aEK[0][0]=" Waren/Städte"
    If $bDebug Then _ArrayDisplay($aEK, "Einkaufspreise")
    #EndRegion

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

    $Form1 = GUICreate("Stadtwaren Rechner", 900, 480, 380, 230)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Form1 = GUICtrlCreatePic("Handel2.jpg", 0, 0, 900, 480)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    Local $sPleaseSelect = " Wähle Stadt"
    Local $sComboText = ""
    For $i = 1 To $aOrte[0]
    $sComboText &= $aOrte[$i] & "|"
    Next
    $sComboText &= $sPleaseSelect
    $Startstadt = GUICtrlCreateCombo("", 85, 75, 110, 130, BitOR($CBS_SORT, $CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL, $WS_TABSTOP))
    GUICtrlSetData(-1, $sComboText, $sPleaseSelect)
    $Zielstadt = GUICtrlCreateCombo("", 212, 75, 110, 25, BitOR($CBS_SORT, $CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL, $WS_TABSTOP))
    GUICtrlSetData(-1, $sComboText, $sPleaseSelect)
    GUISetState(@SW_SHOW)

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

    Local $Ergebnis[8], $Ware[8], $Stufe[8], $Gewicht[8], $EK[8], $VK[8], $AnzahlStuk[8], $iHeight = 200
    For $i = 1 To 7
    $Ware[$i] = GUICtrlCreateLabel("", 30, $iHeight, 190, 40)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Stufe[$i] = GUICtrlCreateLabel("", 240, $iHeight, 25, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewicht[$i] = GUICtrlCreateLabel("", 300, $iHeight, 80, 20, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $EK[$i] = GUICtrlCreateLabel("", 435, $iHeight, 50, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $VK[$i] = GUICtrlCreateLabel("", 540, $iHeight, 60, 25, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ergebnis[$i] = GUICtrlCreateLabel("", 710, $iHeight, 100, 35, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $AnzahlStuk[$i] = GUICtrlCreateLabel("", 655, $iHeight, 45, 35, $SS_Right)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $iHeight += 45
    Next

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

    #Region Übersicht Überschriften Labels
    $Warenname = GUICtrlCreateLabel("Ware", 80, 160, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Warenstufe = GUICtrlCreateLabel("Stufe", 225, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Einkauf = GUICtrlCreateLabel("EK-Preis", 415, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Verkauf = GUICtrlCreateLabel("VK-Preis", 530, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Stuk = GUICtrlCreateLabel("Anzahl-Stück", 620, 160, 125, 35)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewin = GUICtrlCreateLabel("Gewinn", 745, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewichtname = GUICtrlCreateLabel("Gewicht", 310, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Von = GUICtrlCreateLabel("Von", 110, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Nach = GUICtrlCreateLabel("Nach", 237, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladung = GUICtrlCreateLabel("Max-Lade-Kapazität", 345, 50, 160, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladungbelegt = GUICtrlCreateLabel("Belegter-Laderaum", 540, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Listen = GUICtrlCreateLabel("Listen Übersicht", 743, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    #Region Buttons
    $ListeEK = GUICtrlCreateButton("Liste Einkaufspreise", 745, 75, 130, 20)
    $ListeVK = GUICtrlCreateButton("Liste Verkaufspreise", 745, 105, 130, 20)
    #EndRegion Buttons

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

    $InputLadung = GUICtrlCreateInput("0", 360, 75, 130, 21)
    $InputLadungbelegt = GUICtrlCreateInput("0", 553, 75, 130, 21)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Startstadt, $Zielstadt
    _Berechnung($nMsg)
    Case $ListeEK
    _ArraySort($aEK)
    _ArrayDisplay($aEK, "Einkaufspreise sortiert nach Warenbezeichnung ")
    Case $ListeVK
    _ArrayDisplay($aVK, "Verkaufspreise sortiert nach Warenbezeichnung")
    EndSwitch
    WEnd

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

    Func _Berechnung($nArt)
    If $nArt = $Startstadt Then
    $sStart = GUICtrlRead($Startstadt)
    If $sStart = $sPleaseSelect Then Return
    $iStart = _ArraySearch($aOrte, $sStart) - 1
    If $bDebug Then ConsoleWrite("Startiindex: " & $iStart & @TAB & $aEK[0][$iStart] & @CRLF)
    If $iStart < 0 Then
    MsgBox(16, "Fehler:", "Ware nicht im Einkaufsarray gefunden!")
    Return
    EndIf
    $sColSortOrder = $iStart & "%N|0"
    For $i = 1 To UBound($aEK, 2) - 1
    If $i <> $iStart Then $sColSortOrder &= "|" & $i
    Next
    _arraySort2D_MC($aEK, $sColSortOrder)
    $iUBoundEK = UBound($aEK) - 8
    For $iRow = 1 To 6
    $iEK = $aEK[$iUBoundEK + $iRow][$iStart]
    $sWare = $aEK[$iUBoundEK + $iRow][0]
    GUICtrlSetData($Ware[$iRow], $sWare)
    GUICtrlSetData($EK[$iRow], $iEK)
    $iWare = _ArraySearch($aWaren, $aEK[$iUBoundEK + $iRow][0])
    If $bDebug Then ConsoleWrite($iWare & " " & $aWaren[$iWare][1] & @CRLF)
    If $iWare < 0 Then
    MsgBox(16, "Fehler:", $aEK[$iUBoundEK + $iRow] & " nicht im Warenarray gefunden!")
    GUICtrlSetData($Gewicht[$iRow], "")
    GUICtrlSetData($Stufe[$iRow], "")
    Else
    GUICtrlSetData($Gewicht[$iRow], $aWaren[$iWare][1])
    GUICtrlSetData($Stufe[$iRow], $aWaren[$iWare][2])
    EndIf
    GUICtrlSetData($VK[$iRow], "")
    GUICtrlSetData($Ergebnis[$iRow], "")
    Next
    If $bDebug Then _ArrayDisplay($aEK, "Einkaufspreise sortiert für " & $aEK[0][$iStart])
    EndIf
    If $nArt = $Zielstadt Then
    $sZiel = GUICtrlRead($Zielstadt)
    If $sZiel = $sStart Or $sZiel = "" Or $sZiel = $sPleaseSelect Then
    For $iRow = 1 To 6
    GUICtrlSetData($VK[$iRow], "---")
    GUICtrlSetData($Ergebnis[$iRow], "---")
    Next
    Return
    EndIf
    $iZiel = _ArraySearch($aOrte, $sZiel) - 1
    If $bDebug Then ConsoleWrite($iZiel & @TAB & $aVK[0][$iZiel] & @CRLF)
    If $iZiel < 0 Then
    MsgBox(16, "Fehler:", "Ware nicht im Verkaufsarray gefunden!")
    Return
    EndIf
    For $iRow = 1 To 6
    $sWare = GUICtrlRead($Ware[$iRow])
    $iWare = _ArraySearch($aVK, $sWare)
    If $iWare < 0 Then
    GUICtrlSetData($VK[$iRow], "")
    Else
    $sWare = GUICtrlRead($Ware[$iRow])
    $iWare = _ArraySearch($aVK, $sWare)
    If $bDebug Then ConsoleWrite($iWare & " " & $aVK[$iWare][0] & @CRLF)
    GUICtrlSetData($VK[$iRow], $aVK[$iWare][$iZiel])
    EndIf
    Next
    If $bDebug Then _ArrayDisplay($aVK, "Verkaufspreise sortiert nach Warenbezeichnung")
    EndIf
    $Laderaumfrei = GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)
    For $iRow = 1 To 6
    $anzahl = Int($Laderaumfrei / GUICtrlRead($Gewicht[$iRow]))
    $iVK = Number(GUICtrlRead($VK[$iRow]))
    $iEK = Number(GUICtrlRead($EK[$iRow]))
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow], (GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)) / GUICtrlRead($Gewicht[$iRow]))
    EndIf
    If $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl)
    Else
    GUICtrlSetData($Ergebnis[$iRow], "N/A")
    EndIf
    If $bDebug Then ConsoleWrite(GUICtrlRead($Ware[$iRow]) & @TAB & "VK: " & $iVK & @TAB & "EK: " & GUICtrlRead($EK[$iRow]) & @TAB & "Anzahl: " & $anzahl & @CRLF)
    Next
    EndFunc

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

    Func _arraySort2D_MC(ByRef $avArray, $ColOrder = "")
    $aCols = StringSplit($ColOrder, "|")
    If $aCols[0] <> UBound($avArray, 2) Then
    MsgBox(16, "Fehler:", "unterschiedliche Spaltenanzahl!")
    Return 0
    EndIf
    Local $aColformat = $aCols
    Local $sRow
    For $i = 1 To $aColformat[0]
    $aCols[$i] = StringReplace($aCols[$i], "N", "")
    $aCols[$i] = StringReplace($aCols[$i], "D", "")
    Next
    _ArrayDelete($aColformat, 0)
    _ArrayDelete($aCols, 0)
    Local $iCols = UBound($aColformat)
    For $i = 0 To UBound($avArray) - 1
    $sRow = ""
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringUpper(StringRight($aColformat[$j], 1))
    Case "N"
    $sRow &= StringFormat("s", $avArray[$i][$iCol])
    Case "D"
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    Case "G"
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= StringRight("0" & $aDate[2], 2) & "." & StringRight("0" & $aDate[1], 2) & "." & $aDate[3]
    Case Else
    $sRow &= $avArray[$i][$iCol]
    EndSwitch
    If $j <> $iCols - 1 Then $sRow &= "|"
    Next
    $avArray[$i][0] = $sRow
    Next
    _ArraySort($avArray)
    For $i = 0 To UBound($avArray) - 1
    $aSplit = StringSplit($avArray[$i][0], "|", 2)
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringRight($aColformat[$j], 1)
    Case "N"
    $avArray[$i][$iCol] = StringStripWS($aSplit[$j], 1)
    Case "D"
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    Case "G"
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[2] & "." & $aDate[1] & "." & $aDate[3]
    Case Else
    $avArray[$i][$iCol] = $aSplit[$j]
    EndSwitch
    Next
    Next
    Return 1
    EndFunc

    [/autoit]


    Das einzige was ich bei dem den ich weiter bearbeite gemacht habe ist die Erklährungen zu entfernen, da mich diese verwirren und dafür habe ich immer dein beschriftetes nebenbei auf wo ich nachsehen kann wenn ich mit etwas nicht klar komme!
    Ja jetzt wo du es siehst, ist je echt so das du die Rechnung schon aufgestellt hast ^^ .

    Zu (stutzig macht mich vor allem dass in dem 1. Codeschnipsel die Variable $AnzahlStuk[] schon exisitiert. ) ist zusagen, das dies das Label ist was ich für die Ausgabe der rechnung erstellt habe!

    Mfg Ghostleader

    PS:
    Habe es mal versucht die Rechnung zu ändern, aber irgendwie will sie so net mehr das gweicht anzeigen:

    Spoiler anzeigen
    [autoit]

    $Laderaumfrei = GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)
    For $iRow = 1 To 6
    $anzahl = Int($Laderaumfrei / GUICtrlRead($Gewicht[$iRow]))
    $iVK = Number(GUICtrlRead($VK[$iRow]))
    $iEK = Number(GUICtrlRead($EK[$iRow]))
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk, Int($Laderaumfrei) / GUICtrlRead($Gewicht[$iRow]))
    EndIf
    If $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl)
    Else
    GUICtrlSetData($Ergebnis[$iRow], "N/A")
    EndIf
    If $bDebug Then ConsoleWrite(GUICtrlRead($Ware[$iRow]) & @TAB & "VK: " & $iVK & @TAB & "EK: " & GUICtrlRead($EK[$iRow]) & @TAB & "Anzahl: " & $anzahl & @CRLF)
    Next

    [/autoit]

    EDIT:

    Spoiler anzeigen
    [autoit]

    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow], Int($Laderaumfrei) / GUICtrlRead($Gewicht[$iRow]))
    EndIf

    [/autoit]


    So geht die Rechnung zwar wieder, jedoch immernoch mit den otopischen Zahlen.

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 19. November 2011 um 03:21

    Guten Morgen zusammen,

    vielen Dank erstmal wieder an dich autoBert denn es klappt jetzt einwandfrei!

    Nun weiter:
    Ich habe die rechnung:

    Spoiler anzeigen
    [autoit]

    $Laderaumfrei = GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)
    For $iRow = 1 To 6
    $anzahl = Int($Laderaumfrei / GUICtrlRead($Gewicht[$iRow]))
    $iVK = Number(GUICtrlRead($VK[$iRow]))
    $iEK = Number(GUICtrlRead($EK[$iRow]))
    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow], (GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)) / GUICtrlRead($Gewicht[$iRow]))
    EndIf
    If $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl)
    Else
    GUICtrlSetData($Ergebnis[$iRow], "N/A")
    EndIf
    If $bDebug Then ConsoleWrite(GUICtrlRead($Ware[$iRow]) & @TAB & "VK: " & $iVK & @TAB & "EK: " & GUICtrlRead($EK[$iRow]) & @TAB & "Anzahl: " & $anzahl & @CRLF)
    Next

    [/autoit]


    Um:

    Spoiler anzeigen
    [autoit]

    If $InputLadung > 0 Then
    GUICtrlSetData($AnzahlStuk[$iRow], (GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)) / GUICtrlRead($Gewicht[$iRow]))
    EndIf

    [/autoit]


    erweitert, was ja auch super klappt! Mein Problem ist nun das wenn er zb 1000/65 rechnet ganz otopische Zahlen raus kommen.

    Frage daher:
    Kann man in Autoit sagen das er runden soll, also nicht mit Komma ausrechnet denn es ist so, das man nur ganze Waren keine halben mitnehmen kann!

    Mfg Ghostleader

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 18. November 2011 um 23:35

    Hallo autoBrt,

    danke für deine Mühen.

    Also das mit den Übersichten wie gesagt finde ich ganz toll habe es ja auch so umgebaut das diese via Button aufrufbar sind statt beim scrollen zu kommen.

    Was ich damit meine ---> 2. Die waren stimmen nicht immer mit den Städten wo es sie gibt überein. (zb. Accra gibt es kein Zucker) Hast du die wahllos eingetragen? Desweiteren werden bei den Städten statt 6 = 7 Waren angezeigt bei ek und vk. Aber eine stadt verkauft nur 6 Waren!

    ist das zwar auch in den csv´s von dir nur sechs waren sind wie es ja auch sein soll, jedoch werden irgendwie 7 ausgelesen und angezeigt!

    Auch werde ich mir mal deine Änderungen und erklährungen ansehen mal sehen ob ich da beser klar komme!

    Mfg Ghostleader

  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 18. November 2011 um 20:31

    Hallo autoBert,

    erstmal ein ganz ganz großes DANKE an dich für die Mühe die du dir hier gemacht hast!
    Ich muss zugeben das ich mit deiner Art des Skriptens (da ich es net kenne) gerade ziehmlich überfordert und Confused ?( bin!!!
    Das Problem dabei ist, das ich doch einiges ein wenig anders haben wöllte, jedoch anhand dieses Skriptes es selber nicht kann, denn ohne Durchsicht nichts machbar. Ausserdem sollte noch was dazu kommen, wo ich aber nun selber nicht so einfach Hand anlegen kann, da ich wie gesagt gerade überfordert bin und net durchsehe. ;(
    Zu deiner Aussage ---> (mit Excel wäre auch eine schöne Lösung möglich) magst du zwar recht haben, jedoch soll es bei all unseren Programmen so sein das diese ohne zusatzprogramme ausgefürt werden können, da sie schlussendlich alle in ein Tool kommen!
    Zu deiner zweiten Aussage ---> (Ich war am überlegen ob ich anstelle der Labels eine LV verwende) gut das du es nicht gemacht hast, denn ich möchte keine Listview sondern eben Label´s.

    Ich habe noch paar Fragen und ausserdem erläutere ich eben mal was ich wie gerne ändern wöllte.

    Zu den Fragen:

    1. Woher hast du die ganzen Verkaufspreise oder sind die ausgedacht?
    2. Die waren stimmen nicht immer mit den Städten wo es sie gibt überein. (zb. Accra gibt es kein Zucker) Hast du die wahllos eingetragen? Desweiteren werden bei den Städten statt 6 = 7 Waren angezeigt bei ek und vk. Aber eine stadt verkauft nur 6 Waren!
    3. Die Ware Bernstein wird zwar im skript wiedergegeben, jedoch ist sie weder in der VK noch EK liste aufgeführt :?:
    3. Kann man die Städte nicht auch wie in der VK Übersicht auch in der EK Übersicht anzeigen lassen?
    4. Kann man das nicht abstellen das diese Übersichten immer kommen wenn man eine stadt auswählt und die lieber über 2 Buttons auswählen lassen wenn man diese sehen möchte, denn das nervt schon ganz schön! SELBER ERLEDIGT
    5. Kann in den ComboBoxen net wie vorher Stadt Wählen stehen am Anfang?
    6. Bei der Berechnung haut was net hin, obwohl überall ek und vk preise da sind statt 0 wird bei manchen N/A ausgegeben!

    Muss erstmal fix die kleine ins bett bringen danach füge ich noch ein was eigentlich noch dazu kommen sollte!

    Aber wie gesagt, soweit ganz ganz super tolle arbeit von dir :!: :!: :!: :thumbup: :thumbup: :rock: ;)

    Mfg Ghostleader

    PS. Von mir leicht verändertes Script:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <file.au3>
    #include <Array.au3>

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

    Global $bDebug = False

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

    Local $aTmp

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

    #Region ;Waren.CSV einlesen und in 2D-Array speichern
    _FileReadToArray(@ScriptDir & "\Waren.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "Waren.CSV")

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

    $aSplit = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    $iCols = $aSplit[0]
    If $bDebug Then _ArrayDisplay($aSplit, "Waren Colheader")

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

    Local $aWaren[$iRows][$iCols]
    ;Warenbezeichnung Gewicht und Stufe in Waren-Array eintragen
    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aWaren[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    If $bDebug Then _ArrayDisplay($aWaren, "Waren")
    #EndRegion
    #Region ;Verkauspreise einlesen und in 2D-Array eintragen
    _FileReadToArray(@ScriptDir & "\VK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "VK.CSV")

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

    $aOrte = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    If $bDebug Then _ArrayDisplay($aOrte, "Orte aus VK.CSV")
    $iCols = $aOrte[0]

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

    Local $aVK[$iRows][$iCols]

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

    ;Orte Warenbezeichnung und Preise in VK-Array eintragen
    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aVK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    If $bDebug Then _ArrayDisplay($aVK, "Verkaufspreise")
    #EndRegion

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

    #Region ;Einkauspreise einlesen und in 2D-Array eintragen
    _FileReadToArray(@ScriptDir & "\EK.csv", $aTmp)
    $iRows = $aTmp[0]
    _ArrayDelete($aTmp, 0)
    If $bDebug Then _ArrayDisplay($aTmp, "EK.CSV")

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

    $aOrte = StringSplit(StringReplace($aTmp[0], '"', ''), ";")
    If $bDebug Then _ArrayDisplay($aOrte, "Orte aus EK.CSV")
    $iCols = $aOrte[0]

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

    Local $aEK[$iRows][$iCols]

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

    ;Orte Warenbezeichnung und Preise in EK-Array eintragen
    For $iRow = 0 To $iRows - 1
    $aSplit = StringSplit(StringReplace($aTmp[$iRow], '"', ''), ";")
    For $iCol = 1 To $iCols
    $aEK[$iRow][$iCol - 1] = $aSplit[$iCol]
    Next
    Next
    If $bDebug Then _ArrayDisplay($aEK, "Einkaufspreise")
    #EndRegion

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

    $Form1 = GUICreate("Stadtwaren Rechner", 1000, 520, 380, 230)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Form1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Alex Sindy Amy\Desktop/Handel.jpg", 0, 0, 1000, 520)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    Local $sComboText = ''
    For $i = 1 To $aOrte[0]
    $sComboText &= $aOrte[$i] & "|"
    Next
    $Startstadt = GUICtrlCreateCombo("Wähle Stadt", 85, 75, 110, 130)
    GUICtrlSetData(-1, $sComboText)
    $Zielstadt = GUICtrlCreateCombo("Wähle Stadt", 212, 75, 110, 25)
    GUICtrlSetData(-1, $sComboText, 1)
    GUISetState(@SW_SHOW)

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

    Local $Ergebnis[8], $Ware[8], $Stufe[8], $Gewicht[8], $EK[8], $VK[8], $test[8], $iHeight = 230
    For $i = 1 To 7
    $Ware[$i] = GUICtrlCreateLabel("", 30, $iHeight, 190, 40)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ergebnis[$i] = GUICtrlCreateLabel("", 680, $iHeight, 150, 35)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Stufe[$i] = GUICtrlCreateLabel("", 240, $iHeight, 25, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewicht[$i] = GUICtrlCreateLabel("", 335, $iHeight, 80, 20)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $EK[$i] = GUICtrlCreateLabel("", 435, $iHeight, 50, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $VK[$i] = GUICtrlCreateLabel("", 540, $iHeight, 60, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $test[$i] = GUICtrlCreateLabel("", 645, 190, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $iHeight += 30
    Next

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

    #Region Übersicht Überschriften Labels
    $Warenname = GUICtrlCreateLabel("Ware", 80, 160, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Warenstufe = GUICtrlCreateLabel("Stufe", 225, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Einkauf = GUICtrlCreateLabel("EK-Preis", 415, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Verkauf = GUICtrlCreateLabel("VK-Preis", 530, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewin = GUICtrlCreateLabel("Gewinn", 645, 160, 80, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Gewichtname = GUICtrlCreateLabel("Gewicht", 310, 160, 120, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Von = GUICtrlCreateLabel("Von", 110, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Nach = GUICtrlCreateLabel("Nach", 237, 50, 81, 158)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladung = GUICtrlCreateLabel("Max-Lade-Kapazität", 345, 50, 160, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Ladungbelegt = GUICtrlCreateLabel("Belegter-Laderaum", 540, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Berechnung = GUICtrlCreateLabel("Berechnung starten", 730, 50, 180, 25)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    #Region Buttons
    $BerechnungStart = GUICtrlCreateButton("Berechnung &Starten", 745, 75, 130, 20)
    GUICtrlSetState($BerechnungStart, $GUI_DISABLE)
    $ListeEK = GUICtrlCreateButton("Liste Einkaufspreise", 745, 105, 130, 20)
    GUICtrlSetState($BerechnungStart, $GUI_DISABLE)
    $ListeVK = GUICtrlCreateButton("Liste Verkaufspreise", 745, 135, 130, 20)
    GUICtrlSetState($BerechnungStart, $GUI_DISABLE)
    #EndRegion Buttons

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

    $InputLadung = GUICtrlCreateInput("0", 360, 75, 130, 21)
    $InputLadungbelegt = GUICtrlCreateInput("0", 553, 75, 130, 21)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Startstadt
    $sStart = GUICtrlRead($Startstadt)
    $sZiel = GUICtrlRead($Zielstadt)
    $iStart = _ArraySearch($aOrte, $sStart) - 1
    ConsoleWrite($iStart & @TAB & $aEK[0][$iStart] & @CRLF)
    ;_ArraySort($aEK, 1, 0, 0, $iStart) ;später arraySort2D_MC.au3 nehmen
    $sColSortOrder = $iStart & "%N|0"
    For $i = 1 To UBound($aEK, 2) - 1
    If $i <> $iStart Then $sColSortOrder &= "|" & $i
    Next
    _arraySort2D_MC($aEK, $sColSortOrder) ;sortiert Preise aufsteigend bei gleichem Preis 2. Kriteriu Warenname
    $iUBoundEK = UBound($aEK) - 9 ;7 für die Schleifendurchgänge +1 weil 0-baisert +1 weil danach letztes Element die Spaltenüberschrift enthält
    For $iRow = 1 To 7
    $iEK = $aEK[$iUBoundEK + $iRow][$iStart]
    GUICtrlSetData($Ware[$iRow], $aEK[$iUBoundEK + $iRow][0])
    GUICtrlSetData($EK[$iRow], $iEK)
    $iWare = _ArraySearch($aWaren, $aEK[$iUBoundEK + $iRow][0])
    ConsoleWrite($iWare & @CRLF)
    GUICtrlSetData($Gewicht[$iRow], $aWaren[$iWare][1])
    GUICtrlSetData($Stufe[$iRow], $aWaren[$iWare][2])
    Next
    ;If $bDebug Then
    Case $ListeEK
    _ArrayDisplay($aEK, "Einkaufspreise sortiert nach Warenbezeichnung " & $aEK)

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

    Case $Zielstadt
    $sStart = GUICtrlRead($Startstadt)
    $sZiel = GUICtrlRead($Zielstadt)
    $sStart = GUICtrlRead($Startstadt)
    $sZiel = GUICtrlRead($Zielstadt)
    $iZiel = _ArraySearch($aOrte, $sZiel) - 1
    ConsoleWrite($iZiel & @TAB & $aVK[0][$iZiel] & @CRLF)
    ;if $bDebug Then _ArraySort($aVK, 1, 0, 0, 0)
    For $iRow = 1 To 7
    $sWare = GUICtrlRead($Ware[$iRow])
    $iWare = _ArraySearch($aVK, $sWare)
    ConsoleWrite($iWare & @CRLF)
    GUICtrlSetData($VK[$iRow], $aVK[$iWare][$iZiel])
    If GUICtrlRead($Zielstadt) = GUICtrlRead($Startstadt) Then
    GUICtrlSetState($BerechnungStart, $GUI_DISABLE)
    Else
    GUICtrlSetState($BerechnungStart, $GUI_ENABLE)
    EndIf
    Next
    ;If $bDebug Then
    Case $ListeVK
    _ArrayDisplay($aVK, "Verkaufspreise sortiert nach Warenbezeichnung")
    #cs
    $aRegExp = StringRegExp(FileRead(@ScriptDir & "\VK\" & GUICtrlRead($Startstadt) & ".csv"), GUICtrlRead($Zielstadt) & ",(.+?),(.+?),(.+?),(.+?),(.+?),(.+?),(.+?)," & _
    "(.+?),(.+?),(.+?),(.+?),(.+?)", 3)
    For $j = 0 To UBound($aRegExp) - 1 Step +2
    GUICtrlSetData($VK[$iRow], $aRegExp[$j + 1])
    $iRow += 1
    Next
    #ce
    ;~ _ArrayDisplay($aRegExp)
    Case $BerechnungStart
    $Laderaumfrei = GUICtrlRead($InputLadung) - GUICtrlRead($InputLadungbelegt)
    For $iRow = 1 To 7
    $anzahl = Int($Laderaumfrei / GUICtrlRead($Gewicht[$iRow]))
    $iVK = GUICtrlRead($VK[$iRow])
    $iEK = GUICtrlRead($EK[$iRow])
    If $iVK > $iEK And $iEK > 0 Then
    GUICtrlSetData($Ergebnis[$iRow], ($iVK - $iEK) * $anzahl)
    Else
    GUICtrlSetData($Ergebnis[$iRow], "N/A")
    EndIf
    ConsoleWrite("VK: " & $iVK & @TAB & "EK: " & GUICtrlRead($EK[$iRow]) & @TAB & "Anzahl: " & $anzahl & @CRLF)
    Next
    EndSwitch
    WEnd

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

    Func _arraySort2D_MC(ByRef $avArray, $ColOrder)
    ;Parameterübergabe
    ;$avArray zu sorterendes Array
    ;$ColdOrder String mit den Sortieranweisungen, getrennt mit "|" für jede Spalte
    ; zulässige Angaben:
    ; nur Spaltenindex = normale Sortierung
    ; Spaltenindex%N = numerische Sortierung
    ; Spaltenindex%D = Sortierung nach Datum JJJJ/MM/TT
    ; Spaltenindex%G = Sortierung nach Geburtstag MM/TT/JJJJ
    ; z.B.: "1|2%N|3%D|0" die Reihenfolge für die Sortierung ist 1.,2., 3. 0. (0 basierend)
    ; die 1. Spalte wird Standard von _ArraySort verwendet
    ; die 2. Spalte (%N) wird bei der Sortierun numerisch behnadelt
    ; die 3. Spalte (%D) wird als Datum behandelt
    ;
    ; es müssen alle Spalten des Arrays in den Sortieranweisungen vorkommen
    ; =====================================================================
    ;Rückgabe: 0 Fehler (nicht alle Spalten in $ColOrder definert
    ; 1 Erfolg
    ;Autor: AutoBert 2010 https://autoit.de/index.php?page…1403#post141403
    ;==============================================================================================================

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

    $aCols = StringSplit($ColOrder, "|")
    ;consolewrite($aCols[0] & " " & UBound($array, 2) & @CRLF)
    If $aCols[0] <> UBound($avArray, 2) Then
    MsgBox(16, "Fehler:", "unterschiedliche Spaltenanzahl!")
    Return 0
    EndIf
    Local $aColformat = $aCols
    Local $sRow
    For $i = 1 To $aColformat[0]
    ;$aColformat[$i] = StringRight($aColformat[$i], 1)
    $aCols[$i] = StringReplace($aCols[$i], "N", "")
    $aCols[$i] = StringReplace($aCols[$i], "D", "")
    Next
    _ArrayDelete($aColformat, 0)
    _ArrayDelete($aCols, 0)
    Local $iCols = UBound($aColformat)
    For $i = 0 To UBound($avArray) - 1
    $sRow = ""
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringUpper(StringRight($aColformat[$j], 1))
    Case "N" ;numerisch
    $sRow &= StringFormat("%99s", $avArray[$i][$iCol])
    ;ConsoleWrite(StringFormat("%99s", $avArray[$i][$iCol]) & @CRLF)
    Case "D" ;Datum JJJJ/MM/TT
    ;;consolewrite("D: " & $aColformat[$j] & " " & $avArray[$i][$iCols])
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    Case "G" ;Geburtstags-Datum MM/TT/JJJJ
    ;;consolewrite("D: " & $aColformat[$j] & " " & $avArray[$i][$iCols])
    $aDate = StringSplit($avArray[$i][$iCol], ".")
    $sRow &= StringRight("0" & $aDate[2], 2) & "." & StringRight("0" & $aDate[1], 2) & "." & $aDate[3]
    Case Else
    $sRow &= $avArray[$i][$iCol]
    EndSwitch
    If $j <> $iCols - 1 Then $sRow &= "|"
    Next
    $avArray[$i][0] = $sRow
    ;consolewrite($sRow & @CRLF)
    Next
    _ArraySort($avArray)
    ;_ArrayDisplay($avArray)
    ;_ArrayDisplay($aColformat, "FormatStrings")
    ;_ArrayDisplay($aCols, "Cols")
    ;consolewrite($iCols & @CRLF)
    For $i = 0 To UBound($avArray) - 1
    $aSplit = StringSplit($avArray[$i][0], "|", 2)
    For $j = 0 To $iCols - 1
    $iCol = $aCols[$j]
    Switch StringRight($aColformat[$j], 1)
    ; Case "X"

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

    ;#cs
    Case "N" ;numerisch
    $avArray[$i][$iCol] = StringStripWS($aSplit[$j], 1)
    ;consolewrite(" N: " & $avArray[$i][$iCol])
    Case "D" ;Datum JJJJ/MM/TT
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[3] & "." & $aDate[2] & "." & $aDate[1]
    ;consolewrite(" D: " & $avArray[$i][$iCol])
    Case "G" ;Geburtstags-Datum MM/TT/JJJJ
    $aDate = StringSplit($aSplit[$j], ".")
    $avArray[$i][$iCol] = $aDate[2] & "." & $aDate[1] & "." & $aDate[3]
    ;consolewrite(" D: " & $avArray[$i][$iCol])
    ;#ce
    Case Else
    $avArray[$i][$iCol] = $aSplit[$j]
    ;consolewrite(" : " & $avArray[$i][$iCol])
    EndSwitch
    Next
    ;consolewrite(@CRLF)
    Next
    Return 1
    ;_ArrayDisplay($avArray)
    EndFunc ;==>_arraySort2D_MC

    [/autoit]
  • GUICtrlSetData mit GUICtrlRead auslesen

    • Ghostleader
    • 18. November 2011 um 17:19

    Hallo BugFix,

    danke erstmal für deine Antwort und deinen Vorschlag mit Erklährung. Sobald ich Zeit habe mich mal damit zu beschäftigen werde ich dies mal tun.

    Bis dahin wollte ich es doch gerne erstmal so lassen und gerne den Fehler beheben!

    Mfg Ghostleader

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™