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

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 22. November 2013 um 23:54

    Hallo i2c,

    danke dir für die Anhaltspunkte es hat geklappt.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ; Variablen
    $titel = "Neue Runde es ist genug Zeit" ; Titel, es wird auch ein Info Icon mit angezeigt
    $titel1 = "Achtung, die Zeit wird knapp" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 0 ; Dauer in Stunden
    $DauerMin = 10 ; Dauer in Minuten
    $DauerSek = 15; Dauer in Sekunden

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

    ; Begin Globale für Timer
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    ; Ende Globale für Timer

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

    Opt("GUIOnEventMode", 1) ; Activate Event mode
    GUICreate("WarenHandelsTool", 750, 330, 520, 10)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")

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

    ;Begin Label/Button Timer
    Opt("GUIOnEventMode", 1)
    $Label1 = GUICtrlCreateLabel("", 500, 113, 165, 22)
    GUICtrlSetData($Label1, StringFormat("%02d Std %02d Min %02d Sek", $DauerStd, $DauerMin, $DauerSek))
    GUICtrlSetFont(-1, 14, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor($Label1, 0x000000)
    $Button1 = GUICtrlCreateButton("Timer-Start", 585, 146, 100, 21, $BS_CENTER)
    GUICtrlSetOnEvent(-1, "ButtonTimer1")
    $Button2 = GUICtrlCreateButton("Timer-Stop/Reset", 585, 146, 100, 21, $BS_CENTER)
    GUICtrlSetOnEvent(-1, "ButtonTimer2")
    GUICtrlSetState($Button2, $GUI_HIDE)

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

    GUISetState(@SW_SHOW)

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

    ; Begin Button Funktionen Timer
    Func ButtonTimer1()
    AdlibRegister("_start", 1000) ; Timer aktivieren
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer2()
    AdlibUnRegister("_start") ; Timer deaktivieren
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    GUICtrlSetData($Label1, StringFormat("%02d Std %02d Min %02d Sek", $DauerStd, $DauerMin, $DauerSek))
    GUICtrlSetColor($Label1,0x000000)
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel,1)
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_HIDE)
    EndFunc
    ; Ende Funktion Timer

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

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "" & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt > 600 Then
    GUICtrlSetColor($Label1, 0x000000)
    ElseIf $DauerGesammt < 600 Then
    GUICtrlSetColor($Label1, 0xFF0000)
    EndIf
    If $DauerGesammt > 600 Then
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel,1) ; Ausgabe der Information
    ElseIf $DauerGesammt < 600 Then
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),175,0,$titel1,2)
    EndIf
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start
    ; Ende Timerfunktion

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

    Func close()
    Exit
    EndFunc

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Sleep(4000)
    EndSwitch
    WEnd

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

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std %02d Min %02d Sek"
    $format4 = "%02d Std. %02d Min."

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

    $std = Floor($value / (60 * 60)) ; Berechnung der Stunden
    $value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

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

    Return StringFormat($format3, $std, $min, $sek) ; Rückgabe des formatierten Strings
    EndFunc ;==>_Sek2StdMinSek

    [/autoit]


    Wenn du Lust hast, könntest ja nochmal drüber schauen ob es rein vom Code her ok ist, oder ob es vielleicht noch Verbesserungen gäbe, da es zwar einwandfrei funktioniert, aber ich es doch schon gerne ordentlich machen möchte.

    Mfg Ghostleader und nochmal vielen Dank für die Hilfe!

  • Fokus von Combobox nach Auswahl verlieren

    • Ghostleader
    • 22. November 2013 um 23:36

    Hallo Raupi und die anderen,

    ich habe mich mal mit deinem Beispiel an dem Skript wo es rein soll beschäftigt und daher auch erst jetzt meine Antwort.

    Also ich glaube das des so nicht funktioniert bei mir, denn egal wie ich es gesetzt habe geht dann überhaupt nichts mehr.
    Ich gehe davon aus das es an mehreren Dingen liegt, Menü Func geht bei mir so nicht zu machen und auch die Comboerstellung ist ja bei mir net so einfach.
    Kann auch sein das ich gänzlich falsch liege, jedoch bekomme ich es einfach nicht hin.

    Hier mal der Code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <ListboxConstants.au3>
    #include <INet.au3>

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

    Opt("GUIOnEventMode", 1)
    $FORM1 = GUICreate("WarenHandelsTool", 680, 330, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "minimizeForm1")
    $PICPET = GUICtrlCreatePic(@ScriptDir & "\BackgroundStormdevil.jpg", 0, 0, 680, 330)
    GUICtrlSetState($PICPET, $GUI_DISABLE)

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

    Global $FILENAME = "StaedteHandelstool.ini"
    Global $FILENAMEWARE = "Waren.ini"

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

    Dim $TOWNS = GETTOWNS()
    Dim $WARE = GETWARE()

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

    Global $COMBOAMOUNTWARE = 1
    Global $COMBOAMOUNT = 10
    Dim $COMBOSLEFT[$COMBOAMOUNT][2]
    Dim $COMBOSRIGHT[$COMBOAMOUNT]
    Dim $COMBOWARE[$COMBOAMOUNTWARE][2]
    Dim $COMBOWARE1[$COMBOAMOUNTWARE][2]

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

    Global $HLIST = GUICtrlCreateList("", 493, 25, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetOnEvent($HLIST, "itemClicked")
    GUICtrlSetState($HLIST, $GUI_HIDE)

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

    Global $WLIST = GUICtrlCreateList("", 493, 233, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetState($WLIST, $GUI_HIDE)
    GUICtrlCreateLabel("Von Stadt", 20, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 16770244)
    GUICtrlCreateLabel("Nach Stadt", 390, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0)

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

    Global $CURRENTLABEL

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

    #Region Combos Stadtauswahl
    Local $ABSTAND = 30
    For $I = 0 To $COMBOAMOUNT - 1
    $COMBOSLEFT[$I][0] = CREATECOMBO(20, 25 + $I * $ABSTAND, 95, 25)
    $COMBOSLEFT[$I][1] = GUICtrlCreateLabel("", 130, 27 + $I * $ABSTAND, 250, 30, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $COMBOSRIGHT[$I] = CREATECOMBO(390, 25 + $I * $ABSTAND, 95, 25)
    GUICtrlSetOnEvent($COMBOSLEFT[$I][0], "comboChanged")
    Next
    #EndRegion Combos Stadtauswahl

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

    #Region Combos Warenauswahl
    Local $ABSTAND = 30
    For $I = 0 To $COMBOAMOUNTWARE - 1
    $COMBOWARE[$I][0] = CREATECOMBOO(493, 205 + $I * $ABSTAND, 180, 25)
    $COMBOWARE1[$I][1] = GUICtrlCreateLabel("", 250, 10 + $I * $ABSTAND, 100, 15, $SS_LEFT)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlSetOnEvent($COMBOWARE[$I][0], "comboChangedd")
    Next
    #EndRegion Combos Warenauswahl
    GUISetState(@SW_SHOW)

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

    Opt("GUIOnEventMode", 1)
    $FORM2 = GUICreate("Form2", 50, 43, 65, 175, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "minimizeForm2")
    $PICPET = GUICtrlCreatePic(@ScriptDir & "\BackgroundStormdevil.jpg", 0, 0, 680, 330)
    GUICtrlSetState($PICPET, $GUI_DISABLE)
    GUICtrlCreateButton("Handel", 5, 13, 40, 18)
    GUICtrlSetOnEvent(-1, "minimizeForm2")
    GUISetState(@SW_SHOW)
    GUISetState(@SW_MINIMIZE)
    $HACTIVE = WinGetHandle("[active]", "")
    WinSetOnTop($FORM1, "", 1)
    $HACTIVE = WinGetHandle("[active]", "")
    WinSetOnTop($FORM2, "", 1)

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

    While 1
    Sleep(4000)
    WEnd

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

    #Region Func Combos Stadt
    Func CLOSE()
    _LOG("Closing programm")
    Exit
    EndFunc

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

    Func MINIMIZEFORM1()
    GUISetState(@SW_RESTORE, $FORM2)
    EndFunc

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

    Func MINIMIZEFORM2()
    GUISetState(@SW_RESTORE, $FORM1)
    GUISetState(@SW_MINIMIZE, $FORM2)
    EndFunc

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

    Func GETTOWNS()
    _LOG("Reading section names..")
    Local $SECTIONAMES = IniReadSectionNames($FILENAME)
    IF (@error) Then
    Local $ERRORMSG = "Could not open file '" & $FILENAME & "'."
    _LOG($ERRORMSG, True)
    MsgBox(0, "Error", $ERRORMSG)
    Return -1
    EndIf
    _LOG("Read " & $SECTIONAMES[0] & " section names.")
    Return $SECTIONAMES
    EndFunc

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

    Func GETITEMS($TOWN)
    Local $ITEMS = IniReadSection($FILENAME, $TOWN)
    IF (@error) Then
    Local $ERRORMSG = "Could not read section '" & $TOWN & "'."
    _LOG($ERRORMSG, True)
    MsgBox(0, "Error", $ERRORMSG)
    Return -1
    EndIf
    Local $ITEMAMOUNT = $ITEMS[0][0]
    _LOG("Found '" & $ITEMAMOUNT & "' items for town '" & $TOWN & "'.")
    Local $AVAILABLEITEMS
    For $I = 1 To $ITEMAMOUNT
    $AVAILABLEITEMS &= $ITEMS[$I][0]
    IF ($I < $ITEMAMOUNT) Then $AVAILABLEITEMS &= "|"
    Next
    Return $AVAILABLEITEMS
    EndFunc
    #EndRegion Func Combos Stadt

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

    #Region Func Combos Waren
    Func CLOSET()
    _LOGE("Closing program")
    Exit
    EndFunc

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

    Func GETWARE()
    _LOGE("Reading section names..")
    Local $SECTIONAMESWARE = IniReadSectionNames($FILENAMEWARE)
    IF (@error) Then
    Local $ERRORMSG = "Could not open file '" & $FILENAMEWARE & "'."
    _LOGE($ERRORMSG, True)
    MsgBox(0, "Error", $ERRORMSG)
    Return -1
    EndIf
    _LOGE("Read " & $SECTIONAMESWARE[0] & " section names.")
    Return $SECTIONAMESWARE
    EndFunc

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

    Func GETWAREITEMS($WARE)
    Local $ITEMSS = IniReadSection($FILENAMEWARE, $WARE)
    IF (@error) Then
    Local $ERRORMSG = "Could not read section '" & $WARE & "'."
    _LOGE($ERRORMSG, True)
    MsgBox(0, "Error", $ERRORMSG)
    Return -1
    EndIf
    Local $ITEMAMOUNTT = $ITEMSS[0][0]
    _LOGE("Found '" & $ITEMAMOUNTT & "' items for town '" & $WARE & "'.")
    Local $AVAILABLEITEMSS
    For $I = 1 To $ITEMAMOUNTT
    $AVAILABLEITEMSS &= $ITEMSS[$I][0]
    IF ($I < $ITEMAMOUNTT) Then $AVAILABLEITEMSS &= "|"
    Next
    Return $AVAILABLEITEMSS
    EndFunc
    #EndRegion Func Combos Waren

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

    Func CREATECOMBO($X, $Y, $WIDTH, $HEIGHT)
    Local $STRING
    For $I = 2 To $TOWNS[0]
    $STRING &= $TOWNS[$I]
    IF ($I < $TOWNS[0]) Then $STRING &= "|"
    Next
    $COMBO = GUICtrlCreateCombo($TOWNS[1], $X, $Y, $WIDTH, $HEIGHT, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $STRING, "")
    Return $COMBO
    EndFunc

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

    Func CREATECOMBOO($X, $Y, $WIDTH, $HEIGHT)
    Local $STRING
    For $I = 2 To $WARE[0]
    $STRING &= $WARE[$I]
    IF ($I < $WARE[0]) Then $STRING &= "|"
    Next
    $COMBO = GUICtrlCreateCombo($WARE[1], $X, $Y, $WIDTH, $HEIGHT, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $STRING, "")
    GUICtrlSetState($COMBO, $GUI_SHOW)
    Return $COMBO
    EndFunc

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

    Func _LOG($MESSAGE, $ERROR = False)
    IF ($ERROR) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $MESSAGE & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $MESSAGE & @CRLF)
    EndIf
    EndFunc

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

    Func _LOGE($MESSAGE, $ERROR = False)
    IF ($ERROR) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $MESSAGE & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $MESSAGE & @CRLF)
    EndIf
    EndFunc

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

    Func COMBOCHANGED()
    _LOG("Combo " & @GUI_CtrlId & " was selected")
    Local $CLICKEDCOMBO = -1
    For $I = 0 To UBound($COMBOSLEFT)
    IF (@GUI_CtrlId == $COMBOSLEFT[$I][0]) Then
    $CLICKEDCOMBO = $COMBOSLEFT[$I][0]
    $CURRENTLABEL = $COMBOSLEFT[$I][1]
    ExitLoop
    EndIf
    Next
    IF ($CLICKEDCOMBO == -1) Then
    _LOG("Unknown combo was clicked..", True)
    Return -1
    EndIf
    Local $SELECTEDITEM = GUICtrlRead($CLICKEDCOMBO)
    _LOG("Item " & $SELECTEDITEM & " was clicked.")
    Local $ITEMS = GETITEMS($SELECTEDITEM)
    IF ($ITEMS == -1) Then
    _LOG("Could not retreive items for town '" & $SELECTEDITEM & "'", True)
    Return -1
    EndIf
    GUICtrlSetData($HLIST, "")
    GUICtrlSetData($HLIST, $ITEMS)
    GUICtrlSetState($HLIST, $GUI_SHOW)
    EndFunc
    Func ITEMCLICKED()
    IF (@GUI_CtrlId <> $HLIST) Then
    _LOG("Unkown callback..", True)
    Return -1
    EndIf
    Local $SELECTEDITEM = GUICtrlRead($HLIST)
    _LOG("Item '" & $SELECTEDITEM & "' in List was clicked")
    GUICtrlSetState($HLIST, $GUI_HIDE)
    GUICtrlSetData($CURRENTLABEL, $SELECTEDITEM)
    EndFunc
    #EndRegion

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

    Func COMBOCHANGEDD()
    _LOGE("Combo " & @GUI_CtrlId & " was selected")
    Local $CLICKEDCOMBOO = -1
    For $I = 0 To UBound($COMBOWARE)
    IF (@GUI_CtrlId == $COMBOWARE[$I][0]) Then
    $CLICKEDCOMBOO = $COMBOWARE[$I][0]
    $CURRENTLABEL = $COMBOWARE1[$I][1]
    ExitLoop
    EndIf
    Next
    IF ($CLICKEDCOMBOO == -1) Then
    _LOGE("Unknown combo was clicked..", True)
    Return -1
    EndIf
    Local $SELECTEDITEM = GUICtrlRead($CLICKEDCOMBOO)
    _LOGE("Item " & $SELECTEDITEM & " was clicked.")
    Local $ITEMSS = GETWAREITEMS($SELECTEDITEM)
    IF ($ITEMSS == -1) Then
    _LOGE("Could not retreive items for town '" & $SELECTEDITEM & "'", True)
    Return -1
    EndIf
    GUICtrlSetData($WLIST, "")
    GUICtrlSetData($WLIST, $ITEMSS)
    GUICtrlSetState($WLIST, $GUI_SHOW)
    EndFunc

    [/autoit]

    Es wäre super wenn du oder wer anders da mal drüber schauen könnte und anhand von deinem/Raupis Code nen Ansatz liefern könnte der mich da weiter bringt, oder wenn wer Lust hat sich daran zu versuchen bin ich auch net böse.

    Mfg Ghostleader

    Dateien

    inis.rar 2,42 kB – 294 Downloads
  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 22. November 2013 um 00:44

    Hallo,

    danke dir i2c, war etwas durch den Wind, es funktioniert so einwandfrei Danke.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ; Variablen
    $titel = "" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 0 ; Dauer in Stunden
    $DauerMin = 10 ; Dauer in Minuten
    $DauerSek = 30; Dauer in Sekunden

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

    ; Begin Globale für Timer
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    ; Ende Globale für Timer

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

    GUICreate("WarenHandelsTool", 680, 330, 192, 124)

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

    ;Begin Label/Button Timer
    Opt("GUIOnEventMode", 1)
    $Label1 = GUICtrlCreateLabel("", 500, 113, 165, 22)
    GUICtrlSetData($Label1, StringFormat("%02d:%02d:%02d", $DauerStd, $DauerMin, $DauerSek))
    GUICtrlSetFont(-1, 14, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor($Label1, 0xF0F8FF)
    $Button1 = GUICtrlCreateButton("TimerStart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer1")
    $Button2 = GUICtrlCreateButton("TimerStop", 585, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer2")
    $Button3 = GUICtrlCreateButton("Neustart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer3")
    GUICtrlSetState($Button3, $GUI_HIDE)

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(4000)
    WEnd

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

    ; Begin Button Funktionen Timer
    Func ButtonTimer1()
    AdlibRegister("_start", 1000) ; Timer aktivieren
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer2()
    AdlibUnRegister("_start") ; Timer deaktivieren
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer3()
    AdlibRegister("_start", 1000) ; Timer neustarten
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc
    ; Ende Funktion Timer

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

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "Restzeit: " & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt < 600 Then
    GUICtrlSetColor($Label1, 0xFFE4C4)
    ElseIf $DauerGesammt > 600 Then
    GUICtrlSetColor($Label1, 0x000000)
    EndIf
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start
    ; Ende Timerfunktion

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

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std. %02d Min. %02d Sek."
    $format4 = "%02d Std. %02d Min."

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

    $std = Floor($value / (60 * 60)) ; Berechnung der Stunden
    $value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

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

    Return StringFormat($format1, $std, $min, $sek) ; Rückgabe des formatierten Strings
    EndFunc ;==>_Sek2StdMinSek

    [/autoit]


    Eine Frage habe ich dennoch noch. Und Zwar, wenn ich auf den Button3 drücke der eigentlich die Zeit auf Anfang setzen soll, passiert dies nicht sondern er lässt die Zeit normal da weiter laufen, wo sie beim Stoppen aufhörte.

    Hoffe es nervt nicht all zu sehr, aber ich weiss nicht wie ich das ändern kann.

    Hier geht es wenn die Buttons in While Schleife sitzen warum?

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ; Variablen
    $titel = "" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 0 ; Dauer in Stunden
    $DauerMin = 10 ; Dauer in Minuten
    $DauerSek = 30; Dauer in Sekunden

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 260, 73, 370, 298)
    $Label1 = GUICtrlCreateLabel("", 58, 7, 164, 21)
    GUICtrlSetData($Label1, StringFormat("%02d:%02d:%02d", $DauerStd, $DauerMin, $DauerSek))
    GUICtrlSetFont(-1, 14, 600)
    GUICtrlSetColor($Label1, "")
    $Button1 = GUICtrlCreateButton("Start", 56, 40, 75, 25)
    $Button2 = GUICtrlCreateButton("Stop", 135, 40, 75, 25)
    $Button3 = GUICtrlCreateButton("Neustart", 56, 40, 75, 25)
    GUICtrlSetState($Button3, $GUI_HIDE)
    #endregion ### END Koda GUI section ###

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1, $Button2, $Button3
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    If $nMsg = $Button1 Then
    AdlibRegister("_start", 1000) ; Timer aktivieren
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    EndIf
    If $nMsg = $Button2 Then
    AdlibUnRegister("_start") ; Timer deaktivieren
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndIf
    If $nMsg = $Button3 Then
    AdlibRegister("_start", 1000) ; Timer neustarten
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndIf
    EndSwitch
    WEnd

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

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "Restzeit: " & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt < 900 Then
    GUICtrlSetColor($Label1, 0x000000)
    ElseIf $DauerGesammt > 900 Then
    GUICtrlSetColor($Label1, 0xFFE4C4)
    EndIf
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start

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

    ; Funktion, welche ausgefürht wird, wenn die Zeit um ist
    Func _toDo()
    AdlibUnRegister("_start") ; Timer beenden
    Exit ; Skript beenden
    EndFunc ;==>_toDo

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

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std. %02d Min. %02d Sek."
    $format4 = "%02d Std. %02d Min."

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

    $std = Floor($value / (60 * 60)) ; Berechnung der Stunden
    $value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

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

    Return StringFormat($format1, $std, $min, $sek) ; Rückgabe des formatierten Strings
    EndFunc ;==>_Sek2StdMinSek

    [/autoit]

    Mfg Ghostleader

    Ps: Im Oberen Spoiler ist der Code nun mit den Veränderungen von dir schon.

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 21. November 2013 um 21:30

    Hallo i2c,

    ja dann sieht man das Label, aber leider nur mit 00.00.00 nicht mit der Zeit die es dann insgesammt abläuft das meinnte ich geht das auch.

    Mfg Ghostleader

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 21. November 2013 um 21:01

    Hallöle,

    he danke, da lag der Hund begraben. Auf 600 gestellt und es geht :)

    Aber mal noch ne andere Frage, man sieht ja den Timer nicht bevor man start drückt, also das Label. Kann man das schon sichtbar machen bevor es anfängt zu laufen?

    Mfg Ghostleader

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 21. November 2013 um 20:36

    Hallöle,

    jier nochmal ausführbar:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ; Variablen
    $titel = "" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 0 ; Dauer in Stunden
    $DauerMin = 10 ; Dauer in Minuten
    $DauerSek = 30; Dauer in Sekunden

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

    ; Begin Globale für Timer
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    ; Ende Globale für Timer

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

    GUICreate("WarenHandelsTool", 680, 330, 192, 124)

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

    ;Begin Label/Button Timer
    Opt("GUIOnEventMode", 1)
    $Label1 = GUICtrlCreateLabel("", 500, 113, 165, 22)
    GUICtrlSetFont(-1, 14, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor($Label1, 0xF0F8FF)
    $Button1 = GUICtrlCreateButton("TimerStart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer1")
    $Button2 = GUICtrlCreateButton("TimerStop", 585, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer2")
    $Button3 = GUICtrlCreateButton("Neustart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer3")
    GUICtrlSetState($Button3, $GUI_HIDE)

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(4000)
    WEnd

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

    ; Begin Button Funktionen Timer
    Func ButtonTimer1()
    AdlibRegister("_start", 1000) ; Timer aktivieren
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer2()
    AdlibUnRegister("_start") ; Timer deaktivieren
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer3()
    AdlibRegister("_start", 1000) ; Timer neustarten
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc
    ; Ende Funktion Timer

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

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "Restzeit: " & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt < 10 Then
    GUICtrlSetColor($Label1, 0xFFE4C4)
    ElseIf $DauerGesammt > 10 Then
    GUICtrlSetColor($Label1, 0x000000)
    EndIf
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start
    ; Ende Timerfunktion

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

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std. %02d Min. %02d Sek."
    $format4 = "%02d Std. %02d Min."

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

    $std = Floor($value / (60 * 60)) ; Berechnung der Stunden
    $value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

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

    Return StringFormat($format1, $std, $min, $sek) ; Rückgabe des formatierten Strings
    EndFunc ;==>_Sek2StdMinSek

    [/autoit]

    Mfg Ghostleader

    Ps: Wieviel müsste ich denn für die 10 Minuten eintragen?

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 21. November 2013 um 19:55

    Hallo i2c,

    hier mal kommplett die Timer Func:

    Spoiler anzeigen
    [autoit]


    ;Begin Timer Variablen
    $titel = "" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 0 ; Dauer in Stunden
    $DauerMin = 10 ; Dauer in Minuten
    $DauerSek = 30; Dauer in Sekunden
    ;Ende Timer Variablen

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

    ; Begin Globale für Timer
    Global $DauerGesammt = (60 * 60 * $DauerStd) + (60 * $DauerMin) + $DauerSek
    ; Ende Globale für Timer

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

    ;Begin Label/Button Timer
    Opt("GUIOnEventMode", 1)
    $Label1 = GUICtrlCreateLabel("", 500, 113, 165, 22)
    GUICtrlSetFont(-1, 14, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor($Label1, 0xF0F8FF)
    $Button1 = GUICtrlCreateButton("TimerStart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer1")
    $Button2 = GUICtrlCreateButton("TimerStop", 585, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer2")
    $Button3 = GUICtrlCreateButton("Neustart", 500, 147, 80, 18)
    GUICtrlSetOnEvent(-1, "ButtonTimer3")
    GUICtrlSetState($Button3, $GUI_HIDE)
    ;Ende Label/Buttons Timer

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

    ; Begin Button Funktionen Timer
    Func ButtonTimer1()
    AdlibRegister("_start", 1000) ; Timer aktivieren
    GUICtrlSetState($Button1, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer2()
    AdlibUnRegister("_start") ; Timer deaktivieren
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc

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

    Func ButtonTimer3()
    AdlibRegister("_start", 1000) ; Timer neustarten
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Button2, $GUI_SHOW)
    GUICtrlSetState($Button3, $GUI_SHOW)
    EndFunc
    ; Ende Funktion Timer

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

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "Restzeit: " & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt < 10 Then
    GUICtrlSetColor($Label1, 0x000000)
    ElseIf $DauerGesammt < 10 Then
    GUICtrlSetColor($Label1, 0xFFE4C4)
    EndIf
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start
    ; Ende Timerfunktion

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

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std. %02d Min. %02d Sek."
    $format4 = "%02d Std. %02d Min."

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

    $std = Floor($value / (60 * 60)) ; Berechnung der Stunden
    $value = $value - ((60 * 60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

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

    Return StringFormat($format1, $std, $min, $sek) ; Rückgabe des formatierten Strings
    EndFunc ;==>_Sek2StdMinSek

    [/autoit]

    Die Bedingungen ach ja gerade gesehen oje peinlich^^. Ich habe ja nur ein Label, wo lediglich die Farbe geändert werden soll, wenn die Zeit bei 10 Minuten angekommen ist.

    Mfg Ghostleader


    Ps: Habe die Bedingungen mal angepasst, jedoch bleibt der Erfolg aus.

  • Label Farbe wechseln wenn Zeit auf 10 Minuten runtergelaufen ist

    • Ghostleader
    • 21. November 2013 um 18:16

    Hallo zusammen,

    wie schon in der Überschrift gesagt möchte ich gerne die Labelfarbe des Timers wechseln wenn die Zeit bei 10 Minuten angekommen ist, jedoch macht er das nicht.

    Hier die Function:

    Spoiler anzeigen
    [autoit]

    ; Funktion die vom Timer genutzt wird
    Func _start()
    GUICtrlSetData($Label1, "Restzeit: " & _Sek2StdMinSek($DauerGesammt))
    If $DauerGesammt < 10 Then
    GUICtrlSetColor($Label1, 0x000000)
    ElseIf $DauerGesammt < 10 Then
    GUICtrlSetColor($Label1, 0xFFE4C4)
    EndIf
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc ;==>_start

    [/autoit]

    Kann bitte wer drüber sehen wo der Fehler liegt, danke schön.

    Mfg Ghostleader

  • Fokus von Combobox nach Auswahl verlieren

    • Ghostleader
    • 21. November 2013 um 16:37

    Hallo zusammen,

    ist es möglich das eine ComboBox nach dem man seine Auswahl getroffen hat den Fokus sofort wieder verliert, damit sich die Auswahl bei bewegen des zb. Mausrades nicht mehr ungewollt ändert?

    Habe es bisher so versucht, jedoch ohne Erfolg.

    Spoiler anzeigen
    [autoit]

    $combo = GUICtrlCreateCombo($towns[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    GUICtrlSetState(-1, $GUI_NOFOCUS)
    Return $combo
    ; um den Focus zu verlieren

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

    $combo = GUICtrlCreateCombo($ware[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    GUICtrlSetState(-1, $GUI_Focus)
    GUICtrlSetState($combo, $GUI_SHOW)
    ; den Fokus auf eine andere Combo gesetzt

    [/autoit]

    Zwar ist der Focus bei Start des Programms auf der Zweiten Combo, wählt man jedoch in einer der anderen Combos etwas aus, geht der Focus von denen nicht wieder weg, so wie ich es gerne hätte.

    Wäre super wenn dafür jemand ne Lösung parat hat.

    Mfg Ghostleader

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 23:40

    Danke BugFix für die Klärung und wieder Öffnung des Threads.

    So nun gleich noch ein paar kleine Fragen die mir etwas Kopfzerbrechen machen und wo ich net weiter komme.

    1. Löschen der Gui und auf Anfang zurück setzen.
    Wenn Button gedrückt soll quasi alles auf Anfang gesetzt sein d.h. Alle Combos wieder Sortiert, alle Label´s gelöscht und List´s geschlossen sein, so wie bei start des Programms.
    Habe das so versucht, aber dann bricht das Tool ab:

    Spoiler anzeigen
    [autoit]

    Opt("GUIOnEventMode", 1)
    $ButtonLoeschen = GUICtrlCreateButton("Test", 550, 170, 50, 25)
    GUICtrlSetOnEvent(-1, "loeschenForm1")

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

    Func loeschenForm1()
    GUIDelete()
    EndFunc

    [/autoit]

    3. Zweite gui auch sichtbar wenn man zb. vom Vollbild Modus des Spieles auf den Desktop wechselt oder woanders hin. Kann man das anzeigen abhängig vom Spiel machen, also das die zweite Gui nur angezeigt wird, wenn das Spielfenster auch wirklich aufgerufen und nicht minimiert ist?

    Mfg Ghostleader

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 13:51

    Hallo,

    also in dem Script kann man verschiedene Routen eintragen per Klicken die man beim Handel fahren möchte, quasi als Übersicht für den Handel.

    Da aber das Script stört während des Laufens oder des Fahren, kann man es ja minimieren. Wenn man dies getan hat, soll man es aber (bei gebrauch) über ein kleines Icon was bei minimiertem Script sichtbar sein soll wieder in den Vordergrund rufen können.

    Mfg Ghostleader

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 13:32

    Hallo,

    ja genau sowas möchte ich im Endeffekt, aber ist das Icon denn bewegbar und vor allem habe ich gerade gar keine Ahnung wie ich das umsetzen kann. :(

    Ps: Das bild müsste dann wie auch jetzt die Gui im Vordergrund beim Vollbild Modus des Spieles sein das ist wichtig.

    Mfg

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 13:23
    Zitat von Schnitzel

    Warum nimmst du nicht gleich das Trayicon her?

    Wie meinst du das denn?

    Mfg

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 12:57

    Hallo Schnitzel,

    Danke dir vielmals hat auf Anhieb super funktioniert  :) .

    Spoiler anzeigen

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <ListboxConstants.au3>


    Opt("GUIOnEventMode", 1) ; Activate Event mode
    $Form1 = GUICreate("WarenHandelsTool", 680, 330, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close") ; event -> if close was clicked, call function 'close'
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "minimizeForm1")

    $PicPet = GUICtrlCreatePic(@Scriptdir & "\BackgroundStormdevil.jpg", 0, 0, 680, 330)
    GUICtrlSetState($PicPet, $GUI_DISABLE)

    Global $fileName = "StaedteHandelstool.ini"
    Global $fileNameWare = "Waren.ini"
    Dim $towns = getTowns() ; get all available towns
    Dim $ware = getWare() ; get all available Waren

    Global $comboAmountWare = 1
    Global $comboAmount = 10 ; row amount of combo boxes to be created
    Dim $combosLeft[$comboAmount][2] ; [x][0] = combo [x][1] = label
    Dim $combosRight[$comboAmount]
    Dim $comboware [$comboAmountWare][2]
    Dim $comboware1 [$comboAmountWare][2]

    ; Create List
    Global $hList = GUICtrlCreateList("", 493, 25, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetOnEvent($hList, "itemClicked"); event -> if an item in the list was selected, call function 'itemClicked'
    GUICtrlSetState($hList, $GUI_HIDE); hide the list

    Global $wList = GUICtrlCreateList("", 493, 233, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetState($wList, $GUI_HIDE); hide the list

    GUICtrlCreateLabel("Von Stadt", 20, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0xFFE4C4)
    GUICtrlCreateLabel("Nach Stadt", 390, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0x000000)

    ; Reference to label which needs to be set when clicking an item5
    Global $currentLabel

    #region Combos Stadtauswahl
    ; Create Combos
    Local $abstand = 30 ; distance between combo boxes
    For $i = 0 To $comboAmount - 1
    $combosLeft[$i][0] = createCombo(20, 25 + $i * $abstand, 95, 25)
    $combosLeft[$i][1] = GUICtrlCreateLabel("", 130, 27 + $i * $abstand, 250, 30, $SS_CENTER) ; Create label next to combo
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $combosRight[$i] = createCombo(390, 25 + $i * $abstand, 95, 25)
    GUICtrlSetOnEvent($combosLeft[$i][0], "comboChanged"); event -> if a combobox changed it's value, call function 'comboChanged'
    Next
    #endregion Combos Stadtauswahl

    #region Combos Warenauswahl
    ; Create Combos
    Local $abstand = 30 ; distance between combo boxes
    For $i = 0 To $comboAmountWare - 1
    $comboware[$i][0] = createComboo(493, 205 + $i * $abstand, 180, 25)
    $comboware1[$i][1] = GUICtrlCreateLabel("", 250, 10 + $i * $abstand, 100, 15, $SS_LEFT) ; Create label next to combo
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlSetOnEvent($comboware[$i][0], "comboChangedd")
    Next
    #endregion Combos Warenauswahl

    GUISetState(@SW_SHOW)

    Opt("GUIOnEventMode", 1)
    $Form2 = GUICreate("Form2", 50, 43, 20, 10, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "minimizeForm2")
    $PicPet = GUICtrlCreatePic(@Scriptdir & "\BackgroundStormdevil.jpg", 0, 0, 680, 330)
    GUICtrlSetState($PicPet, $GUI_DISABLE)
    GUICtrlCreateButton("test",0,0,30,18)
    GUICtrlSetOnEvent(-1, "minimizeForm2")
    GUISetState(@SW_SHOW)
    GUISetState(@SW_MINIMIZE)

    ; building view done
    $hActive = WinGetHandle ("[active]", "") ; speichert das Handle des fokussierten Fensters
    ; show view
    WinSetOnTop($Form1, "", 1) ; TopMost für GUI

    $hActive = WinGetHandle ("[active]", "") ; speichert das Handle des fokussierten Fensters
    ; show view
    WinSetOnTop($Form2, "", 1)

    ;idle around..
    While 1
    Sleep(4000)
    WEnd


    #region Func Combos Stadt
    ; closes the programm
    Func close()
    _log("Closing programm")
    Exit
    EndFunc ;==>close

    Func minimizeForm1()
    GUISetState(@SW_RESTORE, $Form2)
    EndFunc

    Func minimizeForm2()
    GUISetState(@SW_RESTORE, $Form1)
    GUISetState(@SW_MINIMIZE, $Form2)
    EndFunc

    ; Get all Town names
    Func getTowns()
    _log("Reading section names..")
    Local $sectioNames = IniReadSectionNames($fileName) ; Read all sections name from the ini

    If (@error) Then ; check if error occured
    Local $errorMsg = "Could not open file '" & $fileName & "'."
    _log($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    _log("Read " & $sectioNames[0] & " section names.")
    Return $sectioNames
    EndFunc ;==>getTowns

    ; Returns string of available items in a town ( sperated by | )
    Func getItems($town)
    Local $items = IniReadSection($fileName, $town) ; read the items of a section, specified by the section name (e.g. town name)
    If (@error) Then ; check for errors
    Local $errorMsg = "Could not read section '" & $town & "'."
    _log($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    Local $itemAmount = $items[0][0] ; items[0][0] holds amount of found items in section
    ; item definition in ini: name=value -> Apfel=0
    ; $items[x][0] = item name
    ; $items[x][1] = item value

    _log("Found '" & $itemAmount & "' items for town '" & $town & "'.")
    ; create string of items, sperated by '|'
    Local $availableItems
    For $i = 1 To $itemAmount
    $availableItems &= $items[$i][0]; get item name, because value is not of interest
    If ($i < $itemAmount) Then $availableItems &= "|"; if there are more items following, add a '|'
    Next

    Return $availableItems
    EndFunc ;==>getItems
    #endregion Func Combos Stadt

    #region Func Combos Waren
    ; closes the programm
    Func closet()
    _loge("Closing program")
    Exit
    EndFunc ;==>close


    ; Get all Waren names
    Func getWare()
    _loge("Reading section names..")
    Local $sectioNamesWare = IniReadSectionNames($fileNameWare) ; Read all sections name from the ini

    If (@error) Then ; check if error occured
    Local $errorMsg = "Could not open file '" & $fileNameWare & "'."
    _loge($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    _loge("Read " & $sectioNamesWare[0] & " section names.")
    Return $sectioNamesWare
    EndFunc ;==>getWare

    ; Returns string of available items in a town ( sperated by | )
    Func getWareitems($ware)
    Local $itemss = IniReadSection($fileNameWare, $ware) ; read the items of a section, specified by the section name (e.g. town name)
    If (@error) Then ; check for errors
    Local $errorMsg = "Could not read section '" & $ware & "'."
    _loge($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    Local $itemAmountt = $itemss[0][0] ; items[0][0] holds amount of found items in section
    ; item definition in ini: name=value -> Apfel=0
    ; $items[x][0] = item name
    ; $items[x][1] = item value

    _loge("Found '" & $itemAmountt & "' items for town '" & $ware & "'.")
    ; create string of items, sperated by '|'
    Local $availableItemss
    For $i = 1 To $itemAmountt
    $availableItemss &= $itemss[$i][0]; get item name, because value is not of interest
    If ($i < $itemAmountt) Then $availableItemss &= "|"; if there are more items following, add a '|'
    Next

    Return $availableItemss
    EndFunc ;==>getItems
    #endregion Func Combos Waren

    ; Creates a combo box with the given parameters
    Func createCombo($x, $y, $width, $height)
    Local $string
    For $i = 2 To $towns[0]
    $string &= $towns[$i]
    If ($i < $towns[0]) Then $string &= "|"
    Next
    $combo = GUICtrlCreateCombo($towns[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    Return $combo
    EndFunc ;==>createCombo

    Func createComboo($x, $y, $width, $height)
    Local $string
    For $i = 2 To $ware[0]
    $string &= $ware[$i]
    If ($i < $ware[0]) Then $string &= "|"
    Next
    $combo = GUICtrlCreateCombo($ware[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    GUICtrlSetState($combo, $GUI_SHOW)
    Return $combo
    EndFunc ;==>createCombo

    ; Prints message with time and @crlf
    Func _log($message, $error = False)
    If ($error) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    EndIf

    EndFunc ;==>_log

    ; Prints message with time and @crlf
    Func _loge($message, $error = False)
    If ($error) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    EndIf

    EndFunc ;==>_log

    ; event callback: will be called if a combo box changed its value
    Func comboChanged()
    _log("Combo " & @GUI_CtrlId & " was selected")
    Local $clickedCombo = -1
    ; find what combo was clicked
    For $i = 0 To UBound($combosLeft)
    If (@GUI_CtrlId == $combosLeft[$i][0]) Then ; check if currentCombo was the source of the event
    $clickedCombo = $combosLeft[$i][0] ; save the clicked combo, to retreive it's actual state
    $currentLabel = $combosLeft[$i][1] ; save the label, to be able to save the selected value from list in it
    ExitLoop
    EndIf
    Next

    If ($clickedCombo == -1) Then ; check if combo was found
    _log("Unknown combo was clicked..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($clickedCombo) ; read the value of the combo
    _log("Item " & $selectedItem & " was clicked.")

    Local $items = getItems($selectedItem) ; get all items, of the selcted 'town'

    If ($items == -1) Then ; check if an error occured
    _log("Could not retreive items for town '" & $selectedItem & "'", True)
    Return -1
    EndIf

    GUICtrlSetData($hList, "");clear List
    GUICtrlSetData($hList, $items); add items
    GUICtrlSetState($hList, $GUI_SHOW) ; show List
    EndFunc ;==>comboChanged

    ; event callback: called if an item in the List was selected
    Func itemClicked()
    If (@GUI_CtrlId <> $hList) Then ; check if source of the event was our list
    _log("Unkown callback..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($hList) ; Read what value was selcted in the list
    _log("Item '" & $selectedItem & "' in List was clicked")

    GUICtrlSetState($hList, $GUI_HIDE);clear List
    GUICtrlSetData($currentLabel, $selectedItem); set the selected item to the label, saved before
    EndFunc ;==>itemClicked
    #endregion functions Stadt -------------------------------------------------------------------------------------------------

    Func comboChangedd()
    _loge("Combo " & @GUI_CtrlId & " was selected")
    Local $clickedComboo = -1
    ; find what combo was clicked
    For $i = 0 To UBound($comboware)
    If (@GUI_CtrlId == $comboware[$i][0]) Then ; check if currentCombo was the source of the event
    $clickedComboo = $comboware[$i][0] ; save the clicked combo, to retreive it's actual state
    $currentLabel = $comboware1[$i][1] ; save the label, to be able to save the selected value from list in it
    ExitLoop
    EndIf
    Next

    If ($clickedComboo == -1) Then ; check if combo was found
    _loge("Unknown combo was clicked..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($clickedComboo) ; read the value of the combo
    _loge("Item " & $selectedItem & " was clicked.")

    Local $itemss = getWareitems($selectedItem) ; get all items, of the selcted 'town'

    If ($itemss == -1) Then ; check if an error occured
    _loge("Could not retreive items for town '" & $selectedItem & "'", True)
    Return -1
    EndIf
    GUICtrlSetData($wList, "");clear List
    GUICtrlSetData($wList, $itemss); add items
    GUICtrlSetState($wList, $GUI_SHOW) ; show List
    EndFunc ;==>comboChanged




    Nun auch gleich noch ne andere Frage.


    Ich wollte eigentlich für die GUI2 den Stile $WS_POPUP verwenden, aber wie ich gerade feststellte kann man dann die GUI nicht mehr frei bewegen. Dies ist aber wichtig, da ja jeder eine andere Bildschirmauflösung hat, sodass man die Coordinaten ja nicht vorgeben kann. Nutzt man aber nen normalen Stile, sieht das ja Blöd aus.
    Ist da irgendwas machbar, oder geht das da nicht, denn eigentlich sollte die Gui2 wie ein TrayIcon fungieren wo man drauf klickt um Gui1 wieder aufzurufen,
    Ist das überhaupt möglich klicken auf eine Gui um eine andere aufzurufen quasi wie jetzt mit dem Button nur ohne diesen also rein die Gui?


    Mfg Ghostleader

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 10:56

    Hallo Schnitzel,

    danke dir erstmal für deine schnelle Antwort.

    Warum ich sagte ohne While ist, weil ich net weiss ob es in dem Script um das es geht so machbar ist, da da GUIOnEventMode verwendet wird und alles über Func´s läuft und nichts über While.

    Spoiler anzeigen

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <ListboxConstants.au3>


    Opt("GUIOnEventMode", 1) ; Activate Event mode
    $Form1 = GUICreate("WarenHandelsTool", 680, 330, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close") ; event -> if close was clicked, call function 'close'

    $PicPet = GUICtrlCreatePic(@Scriptdir & "\BackgroundStormdevil.jpg", 0, 0, 680, 330)
    GUICtrlSetState($PicPet, $GUI_DISABLE)

    Global $fileName = "StaedteHandelstool.ini"
    Global $fileNameWare = "Waren.ini"
    Dim $towns = getTowns() ; get all available towns
    Dim $ware = getWare() ; get all available Waren

    Global $comboAmountWare = 1
    Global $comboAmount = 10 ; row amount of combo boxes to be created
    Dim $combosLeft[$comboAmount][2] ; [x][0] = combo [x][1] = label
    Dim $combosRight[$comboAmount]
    Dim $comboware [$comboAmountWare][2]
    Dim $comboware1 [$comboAmountWare][2]

    ; Create List
    Global $hList = GUICtrlCreateList("", 493, 25, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetOnEvent($hList, "itemClicked"); event -> if an item in the list was selected, call function 'itemClicked'
    GUICtrlSetState($hList, $GUI_HIDE); hide the list

    Global $wList = GUICtrlCreateList("", 493, 233, 180, 85, $LBS_SORT, $WS_EX_OVERLAPPEDWINDOW)
    GUICtrlSetState($wList, $GUI_HIDE); hide the list

    GUICtrlCreateLabel("Von Stadt", 20, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0xFFE4C4)
    GUICtrlCreateLabel("Nach Stadt", 390, 4, 95, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0x000000)

    ; Reference to label which needs to be set when clicking an item5
    Global $currentLabel

    #region Combos Stadtauswahl
    ; Create Combos
    Local $abstand = 30 ; distance between combo boxes
    For $i = 0 To $comboAmount - 1
    $combosLeft[$i][0] = createCombo(20, 25 + $i * $abstand, 95, 25)
    $combosLeft[$i][1] = GUICtrlCreateLabel("", 130, 27 + $i * $abstand, 250, 30, $SS_CENTER) ; Create label next to combo
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $combosRight[$i] = createCombo(390, 25 + $i * $abstand, 95, 25)
    GUICtrlSetOnEvent($combosLeft[$i][0], "comboChanged"); event -> if a combobox changed it's value, call function 'comboChanged'
    Next
    #endregion Combos Stadtauswahl
    GUISetState(@SW_SHOW)
    #region Combos Warenauswahl
    ; Create Combos
    Local $abstand = 30 ; distance between combo boxes
    For $i = 0 To $comboAmountWare - 1
    $comboware[$i][0] = createComboo(493, 205 + $i * $abstand, 180, 25)
    $comboware1[$i][1] = GUICtrlCreateLabel("", 250, 10 + $i * $abstand, 100, 15, $SS_LEFT) ; Create label next to combo
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlSetOnEvent($comboware[$i][0], "comboChangedd")
    Next
    #endregion Combos Warenauswahl

    ; building view done
    $hActive = WinGetHandle ("[active]", "") ; speichert das Handle des fokussierten Fensters
    ; show view
    WinSetOnTop($Form1, "", 1) ; TopMost für GUI

    $Form2 = GUICreate("Test", 100, 100, 100, 100)
    GUICtrlSetState($Form2, $GUI_HIDE)

    ;idle around..
    While 1
    Sleep(4000)
    WEnd


    #region Func Combos Stadt
    ; closes the programm
    Func close()
    _log("Closing programm")
    Exit
    EndFunc ;==>close


    ; Get all Town names
    Func getTowns()
    _log("Reading section names..")
    Local $sectioNames = IniReadSectionNames($fileName) ; Read all sections name from the ini

    If (@error) Then ; check if error occured
    Local $errorMsg = "Could not open file '" & $fileName & "'."
    _log($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    _log("Read " & $sectioNames[0] & " section names.")
    Return $sectioNames
    EndFunc ;==>getTowns

    ; Returns string of available items in a town ( sperated by | )
    Func getItems($town)
    Local $items = IniReadSection($fileName, $town) ; read the items of a section, specified by the section name (e.g. town name)
    If (@error) Then ; check for errors
    Local $errorMsg = "Could not read section '" & $town & "'."
    _log($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    Local $itemAmount = $items[0][0] ; items[0][0] holds amount of found items in section
    ; item definition in ini: name=value -> Apfel=0
    ; $items[x][0] = item name
    ; $items[x][1] = item value

    _log("Found '" & $itemAmount & "' items for town '" & $town & "'.")
    ; create string of items, sperated by '|'
    Local $availableItems
    For $i = 1 To $itemAmount
    $availableItems &= $items[$i][0]; get item name, because value is not of interest
    If ($i < $itemAmount) Then $availableItems &= "|"; if there are more items following, add a '|'
    Next

    Return $availableItems
    EndFunc ;==>getItems
    #endregion Func Combos Stadt

    #region Func Combos Waren
    ; closes the programm
    Func closet()
    _loge("Closing program")
    Exit
    EndFunc ;==>close


    ; Get all Waren names
    Func getWare()
    _loge("Reading section names..")
    Local $sectioNamesWare = IniReadSectionNames($fileNameWare) ; Read all sections name from the ini

    If (@error) Then ; check if error occured
    Local $errorMsg = "Could not open file '" & $fileNameWare & "'."
    _loge($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    _loge("Read " & $sectioNamesWare[0] & " section names.")
    Return $sectioNamesWare
    EndFunc ;==>getWare

    ; Returns string of available items in a town ( sperated by | )
    Func getWareitems($ware)
    Local $itemss = IniReadSection($fileNameWare, $ware) ; read the items of a section, specified by the section name (e.g. town name)
    If (@error) Then ; check for errors
    Local $errorMsg = "Could not read section '" & $ware & "'."
    _loge($errorMsg, True)
    MsgBox(0, "Error", $errorMsg)
    Return -1
    EndIf

    Local $itemAmountt = $itemss[0][0] ; items[0][0] holds amount of found items in section
    ; item definition in ini: name=value -> Apfel=0
    ; $items[x][0] = item name
    ; $items[x][1] = item value

    _loge("Found '" & $itemAmountt & "' items for town '" & $ware & "'.")
    ; create string of items, sperated by '|'
    Local $availableItemss
    For $i = 1 To $itemAmountt
    $availableItemss &= $itemss[$i][0]; get item name, because value is not of interest
    If ($i < $itemAmountt) Then $availableItemss &= "|"; if there are more items following, add a '|'
    Next

    Return $availableItemss
    EndFunc ;==>getItems
    #endregion Func Combos Waren

    ; Creates a combo box with the given parameters
    Func createCombo($x, $y, $width, $height)
    Local $string
    For $i = 2 To $towns[0]
    $string &= $towns[$i]
    If ($i < $towns[0]) Then $string &= "|"
    Next
    $combo = GUICtrlCreateCombo($towns[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    Return $combo
    EndFunc ;==>createCombo

    Func createComboo($x, $y, $width, $height)
    Local $string
    For $i = 2 To $ware[0]
    $string &= $ware[$i]
    If ($i < $ware[0]) Then $string &= "|"
    Next
    $combo = GUICtrlCreateCombo($ware[1], $x, $y, $width, $height, BitOR($CBS_SORT, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, $string, "")
    GUICtrlSetState($combo, $GUI_SHOW)
    Return $combo
    EndFunc ;==>createCombo

    ; Prints message with time and @crlf
    Func _log($message, $error = False)
    If ($error) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    EndIf

    EndFunc ;==>_log

    ; Prints message with time and @crlf
    Func _loge($message, $error = False)
    If ($error) Then
    ConsoleWriteError(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    Else
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    EndIf

    EndFunc ;==>_log

    ; event callback: will be called if a combo box changed its value
    Func comboChanged()
    _log("Combo " & @GUI_CtrlId & " was selected")
    Local $clickedCombo = -1
    ; find what combo was clicked
    For $i = 0 To UBound($combosLeft)
    If (@GUI_CtrlId == $combosLeft[$i][0]) Then ; check if currentCombo was the source of the event
    $clickedCombo = $combosLeft[$i][0] ; save the clicked combo, to retreive it's actual state
    $currentLabel = $combosLeft[$i][1] ; save the label, to be able to save the selected value from list in it
    ExitLoop
    EndIf
    Next

    If ($clickedCombo == -1) Then ; check if combo was found
    _log("Unknown combo was clicked..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($clickedCombo) ; read the value of the combo
    _log("Item " & $selectedItem & " was clicked.")

    Local $items = getItems($selectedItem) ; get all items, of the selcted 'town'

    If ($items == -1) Then ; check if an error occured
    _log("Could not retreive items for town '" & $selectedItem & "'", True)
    Return -1
    EndIf

    GUICtrlSetData($hList, "");clear List
    GUICtrlSetData($hList, $items); add items
    GUICtrlSetState($hList, $GUI_SHOW) ; show List
    EndFunc ;==>comboChanged

    ; event callback: called if an item in the List was selected
    Func itemClicked()
    If (@GUI_CtrlId <> $hList) Then ; check if source of the event was our list
    _log("Unkown callback..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($hList) ; Read what value was selcted in the list
    _log("Item '" & $selectedItem & "' in List was clicked")

    GUICtrlSetState($hList, $GUI_HIDE);clear List
    GUICtrlSetData($currentLabel, $selectedItem); set the selected item to the label, saved before
    EndFunc ;==>itemClicked
    #endregion functions Stadt -------------------------------------------------------------------------------------------------

    Func comboChangedd()
    _loge("Combo " & @GUI_CtrlId & " was selected")
    Local $clickedComboo = -1
    ; find what combo was clicked
    For $i = 0 To UBound($comboware)
    If (@GUI_CtrlId == $comboware[$i][0]) Then ; check if currentCombo was the source of the event
    $clickedComboo = $comboware[$i][0] ; save the clicked combo, to retreive it's actual state
    $currentLabel = $comboware1[$i][1] ; save the label, to be able to save the selected value from list in it
    ExitLoop
    EndIf
    Next

    If ($clickedComboo == -1) Then ; check if combo was found
    _loge("Unknown combo was clicked..", True)
    Return -1
    EndIf

    Local $selectedItem = GUICtrlRead($clickedComboo) ; read the value of the combo
    _loge("Item " & $selectedItem & " was clicked.")

    Local $itemss = getWareitems($selectedItem) ; get all items, of the selcted 'town'

    If ($itemss == -1) Then ; check if an error occured
    _loge("Could not retreive items for town '" & $selectedItem & "'", True)
    Return -1
    EndIf
    GUICtrlSetData($wList, "");clear List
    GUICtrlSetData($wList, $itemss); add items
    GUICtrlSetState($wList, $GUI_SHOW) ; show List
    EndFunc ;==>comboChanged



    Wenn du so nett wärst, könntest da mal bitte rein sehen wäre echt nett.

    Mfg Ghostleader

  • GUI 2 wenn GUI1 Minimiert über Func aufrufen geht das?

    • Ghostleader
    • 20. November 2013 um 10:37

    Hallo zusammen,

    ist es möglich, das wenn die Standard GUI minimiert wird eine zweite Gui sich maximiert und das ganze Über eine Func ohne die While Schleife zu benutzen? Und in der zweiten Gui soll wenn der Button geklickt wird diese zweite sich minimieren und die erste sich wieder maximieren. Alles ohne While Schleife.
    Wenn ja, könnte mir das bitte jemand an Hand eines Bsp. zeigen?

    Spoiler anzeigen

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    $Form1 = GUICreate("Form1", 250, 250, 100, 124)
    GUISetState(@SW_SHOW)

    $Form2 = GUICreate("Form1", 100, 100, 100, 124)
    $Button = GUICtrlCreateButton("Maxi", 20, 60, 60, 25)


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitchWEnd

    Mfg Ghostleader

  • ComboBox Auswahl mit Ini Section vergleichen Werte aus der Section in Listview ausgeben

    • Ghostleader
    • 17. November 2013 um 10:33

    Hallo i2c,

    danke für deine Hilfe, habe mit dem und durch weitere Hilfe das Problemchen gelöst bekommen und habe das Topik daher als gelöst markiert Danke.

    Mfg Ghostleader

  • ComboBox Auswahl mit Ini Section vergleichen Werte aus der Section in Listview ausgeben

    • Ghostleader
    • 15. November 2013 um 20:30

    Hallo i2c,

    wäre echt super wenn du dich meinem Problem annehmen könntest sobald du zeit hast.

    Mfg Ghostleader

  • ComboBox Auswahl mit Ini Section vergleichen Werte aus der Section in Listview ausgeben

    • Ghostleader
    • 15. November 2013 um 11:36

    Hallo i2c,

    habe den Titel mal etwas verkürzt wie du gern Wolltest.

    Mfg Ghostleader

  • ComboBox Auswahl mit Ini Section vergleichen Werte aus der Section in Listview ausgeben

    • Ghostleader
    • 14. November 2013 um 23:38

    Hallo liebe AutoIt´ler,

    wie ihr seht ist schon die Überschrift recht schwierig gemeistert, sodas ich es hier nochmal besser beschreiben werde.

    Quelltext:

    Spoiler anzeigen

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>

    #Region Global
    Global $Listview
    Global $ID_next = 0
    #EndRegion Global

    #Region Gui

    $Form1 = GUICreate("WarenHandelsTool", 520, 420, 192, 124)

    #EndRegion Gui

    #Region Combos Stadtauswahl
    $Combo1 = GUICtrlCreateCombo("Athen", 20, 25, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo2 = GUICtrlCreateCombo("Athen", 365, 25, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo3 = GUICtrlCreateCombo("Athen", 20, 57, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo4 = GUICtrlCreateCombo("Athen", 365, 57, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo5 = GUICtrlCreateCombo("Athen", 20, 89, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo6 = GUICtrlCreateCombo("Athen", 365, 89, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo7 = GUICtrlCreateCombo("Athen", 20, 121, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo8 = GUICtrlCreateCombo("Athen", 365, 121, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo9 = GUICtrlCreateCombo("Athen", 20, 153, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo10 = GUICtrlCreateCombo("Athen", 365, 153, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo11 = GUICtrlCreateCombo("Athen", 20, 185, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo12 = GUICtrlCreateCombo("Athen", 365, 185, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo13 = GUICtrlCreateCombo("Athen", 20, 217, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo14 = GUICtrlCreateCombo("Athen", 365, 217, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo15 = GUICtrlCreateCombo("Athen", 20, 249, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo16 = GUICtrlCreateCombo("Athen", 365, 249, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo17 = GUICtrlCreateCombo("Athen", 20, 281, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo18 = GUICtrlCreateCombo("Athen", 365, 281, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo19 = GUICtrlCreateCombo("Athen", 20, 313, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    $Combo20 = GUICtrlCreateCombo("Athen", 365, 313, 95, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    GUICtrlSetData(-1, "Alexandria|Beirut|Konstantinopel|Tripolis|Algier|Genua|Venedig|Barcelona|Sevilla|Lissabon|Madeira|Las Palmas|Bordeaux|Amsterdam|London|Hamburg|Oslo|Stockholm|Reykjavik|Dakar|Accra|Luanda|Kapstadt|Mosambik|Mogadischu|Aden|Suez|Maskat|Mumbai|Basra|Melaka|Semarang|Sri Lanka|Tourane|Quanzhou|Tianjin|Seoul|Nagasaki|Edo","")
    GUISetState(@SW_SHOW)
    #EndRegion Combos Stadtauswahl

    #Region Combo Warensuche
    $Combo21 = GUICtrlCreateCombo("Ware auswählen Stadt anzeigen", 20, 350, 190, 25, BitOr($CBS_SORT,$CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST,$WS_VSCROLL))
    #EndRegion

    #Region Warenausgabe Labels
    $Label1 = GUICtrlCreateLabel("", 130, 25, 120, 20, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label2 = GUICtrlCreateLabel("", 130, 57, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label3 = GUICtrlCreateLabel("", 130, 89, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label4 = GUICtrlCreateLabel("", 130, 120, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label5 = GUICtrlCreateLabel("", 130, 153, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label6 = GUICtrlCreateLabel("Handels Buff Aufbau", 130, 200, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label7 = GUICtrlCreateLabel("Handels Buff Aufbau", 130, 232, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label8 = GUICtrlCreateLabel("Handels Buff Aufbau", 130, 264, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label9 = GUICtrlCreateLabel("Handels Buff Aufbau", 130, 296, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    $Label10 = GUICtrlCreateLabel("Handels Buff Aufbau", 130, 329, 120, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 12, "Arial Black")
    #endregion Warenausgabe Labels

    #Region Überschrift / Warensuche Labels
    $Labelueberschrift = GUICtrlCreateLabel("Handels Buff Aufbau", 165, 3, 150, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 12, "Arial Black")
    $LabelWarensuche = GUICtrlCreateLabel("Test", 30, 380, 160, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 11, "Arial Black")
    #EndRegion Überschrift / Warensuche Labels

    #Region Warenausgabe Labels SetState
    GUICtrlSetState($Label1, $GUI_HIDE)
    GUICtrlSetState($Label2, $GUI_HIDE)
    GUICtrlSetState($Label3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_HIDE)
    GUICtrlSetState($Label5, $GUI_HIDE)
    GUICtrlSetState($Label6, $GUI_HIDE)
    GUICtrlSetState($Label7, $GUI_HIDE)
    GUICtrlSetState($Label8, $GUI_HIDE)
    GUICtrlSetState($Label9, $GUI_HIDE)
    GUICtrlSetState($Label10, $GUI_HIDE)
    #endregion Warenausgabe Labels SetState

    #Region Labels Timer
    $LabelTimerStunde = GUICtrlCreateLabel("00", 300, 380, 50, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 11, "Arial Black")
    $LabelTimerMinute = GUICtrlCreateLabel("00", 350, 380, 50, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 11, "Arial Black")
    $LabelTimerSekunde = GUICtrlCreateLabel("00", 400, 380, 50, 17, $SS_CENTER )
    GUICtrlSetFont(-1, 11, "Arial Black")
    #endregion Labels Timer

    #Region Listviev´s
    $hListView = GUICtrlCreateListView("Waren in der Stadt", 130, 105, 220, 150,$LVS_SORTASCENDING)
    $Menue_ListView = GUICtrlCreateContextMenu($hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 215)
    _GUICtrlListView_RegisterSortCallBack($hListView)
    GUICtrlSetState($hListView, $GUI_SHOW)
    #EndRegion Listview´s

    #Region Button Start / Reset
    $Button1 = GUICtrlCreateButton("Timer Start", 300, 353, 70, 20)
    $Button1 = GUICtrlCreateButton("Timer Reset", 380, 353, 70, 20)
    #endregion Button Start / Reset

    _load_database($hListView, @ScriptDir & '\Database')

    #Region Functionen
    Func _load_database($hListView, $path_database)
    $search = FileFindFirstFile($path_database & "\*.*")
    If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Return 0
    EndIf

    $ID_next = 0

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $Ware = IniRead($path_database & '\' & $file, 'Athen', 'Ware1', 'error')
    $Ware2 = IniRead($path_database & '\' & $file, 'Athen', 'Ware2', 'error')
    $Ware3 = IniRead($path_database & '\' & $file, 'Athen', 'Ware3', 'error')
    $Ware4 = IniRead($path_database & '\' & $file, 'Athen', 'Ware4', 'error')
    $Ware5 = IniRead($path_database & '\' & $file, 'Athen', 'Ware5', 'error')
    $Ware6 = IniRead($path_database & '\' & $file, 'Athen', 'Ware6', 'error')
    $id = StringTrimRight($file, 4)
    $ID_next = $id + 1

    GUICtrlCreateListViewItem($Ware, $hListView)
    GUICtrlCreateListViewItem($Ware2, $hListView)
    GUICtrlCreateListViewItem($Ware3, $hListView)
    GUICtrlCreateListViewItem($Ware4, $hListView)
    GUICtrlCreateListViewItem($Ware5, $hListView)
    GUICtrlCreateListViewItem($Ware6, $hListView)
    $ID_next = $id + 1

    WEnd
    FileClose($search)
    EndFunc ;==>_load_database
    #EndRegion Functionen

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitchWEnd




    Zur Beschreibung 1:


    Also, vom Prinzip her soll folgendes geschehen.
    Man wählt in einer der kleinen ComboBoxen auf der linken Seite eine Stadt aus (diese Städte sind in der Ini als Sektionen hinterlegt), nun muss eine Funktion in der Ini nach der der Sektion mit gleichem Namen suchen und anschliessend die Werte dieser Sektion in der Listview wiedergeben. Nun haben wie dir Listview mit allen Werten der ausgewählten Stadt = Sektion. In der Listview wählt man nun eine Ware (einen ausgelesenen Wert) aus, anschliesend verschwindet die Listview und das Label erscheint neben der Combo wo ausgewählt wurde, mit eben dem ausgewähltem Wert (Ware) aus der Listview. Dies soll für alle kleinen Combos auf der linken Seite möglich sein!
    Sind alle Combos ausgewählt und Labels sind da, aber man entscheidet sich um und will nochmal in einer Combo ne andere Stadt auswählen dann soll eben das Label von dieser Combo wieder verschwinden und das neu ausgewählte erscheinen.

    So wie ich das jetzt mommentan habe, geht es ja nicht. Auch soll die Listview erst nach auswahl einer Combo erscheinen und nicht von anfang an da sein, dies machte ich nur so damit sie eben jetzt zu sehen ist.
    Ini liegt als Anhang bei.

    Zur Beschreibung 2.

    Ich hätte gerne unten rechts noch einen Timer laufen, der Stunden, Minuten und Sekunden anzeigt und wo die Sekunden ablaufen, jedoch das ganze als Labelausgabe. Mit dem Start Button soll dieser bekinnen und wenn Reset Button gedrückt wird wieder bei der Ausgangszeit von 1h12m00sec stehen bis wieder start gedrückt wird. Ideal wäre noch, wenn man die Zeit bei 10 Minuten verbleibend noch rot färben kann.
    Ich hatte einen schönen Timer gefunden von Peetbe glaube ich aber leider nur als ToolTip ausgabe.

    Timer Code:

    Spoiler anzeigen

    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.6.1
    Author: Jens Kröger

    Script Function:
    In diesem Skript wird ein einfacher Timer beschrieben, er zählt einfach
    runter und führt dann das, was in dem $Befehl steht aus.
    Man kann natürlich auch die _toDo() Funktion anpassen.
    #ce ----------------------------------------------------------------------------

    ; Variablen
    $titel = "" ; Titel, es wird auch ein Info Icon mit angezeigt
    $DauerStd = 1 ; Dauer in Stunden
    $DauerMin = 12 ; Dauer in Minuten
    $DauerSek = 0; Dauer in Sekunden
    $DauerGesammt = (60*60*$DauerStd)+(60*$DauerMin)+$DauerSek ; Die Gesamtdauer
    $Befehl = "cmd" ; Der Befehl der ausgeführt werden soll, es kann auch die _toDo() Fuktion angepasst werden

    AdlibRegister("_start",1000) ; Timer aktivieren

    ; Endlosschleife
    While 1
    Sleep(250) ; CPU Last senken
    WEnd

    ; Funktion die vom Timer genutzt wird
    Func _start()
    ToolTip("Restzeit: " & _Sek2StdMinSek($DauerGesammt),0,0,$titel,1) ; Ausgabe der Information
    If $DauerGesammt = 0 Then _toDo() ; Wenn Dauer bei Null, die _toDo() Funktion aufrufen
    $DauerGesammt = $DauerGesammt - 1 ; Immer den Wert 1 von der Dauer abziehen
    EndFunc

    ; Funktion, welche ausgefürht wird, wenn die Zeit um ist
    Func _toDo()
    AdlibUnRegister("_start") ; Timer beenden
    run($Befehl) ; Befehl ausführen, in diesem Beispiel CMD
    Exit ; Skript beenden
    EndFunc

    ; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
    Func _Sek2StdMinSek($value)
    ; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
    $format1 = "%02d:%02d:%02d"
    $format2 = "%02d:%02d"
    $format3 = "%02d Std. %02d Min. %02d Sek."
    $format4 = "%02d Std. %02d Min."

    $std = Floor($value / (60*60)) ; Berechnung der Stunden
    $value = $value - ((60*60) * $std) ; Berechnung des Restwertes der Sekunden
    $min = Floor($value / (60)) ; Berechnung der Minuten
    $sek = $value - ((60) * $min) ; Rest Sekunden

    Return StringFormat($format1,$std,$min,$sek) ; Rückgabe des formatierten Strings
    EndFunc


    Ich weiss das es alles etwas verwirrend klingt und auch gleich viel Text auf einmal ist, aber nichts desto trotz hoffe ich, das ihr mir helfen könnt und werdet. Ich bin für jede Hilfe Dankbar.

    Mfg Ghostleader

    Ps: Sind Fragen oder was unklar, so einfach Fragen stellen.

    Dateien

    StaedteHandelstool.ini 3,21 kB – 301 Downloads

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™