Visualisierungs Testumgebung ...

  • Hallo liebe Community,
    ich bräuchte mal wieder eure Hilfe :/

    Dies ist quasi eine kleine Testumgebung bezüglich einer Ablaufsteuerung die ich derzeit versuche zu programmieren.
    Ich würde mir wünschen ^^ , dass in der unteren Listview 3 Zeilen eingefügt werden , dann immer die kleinste Uhrzeit automatisch selektiert werden soll, und die Arbeitspunkte für den jeweiligen Arbeitsplan sollen dann oben in der Listview erscheinen. Dann hätten wir oben in der zweiten Spalte quasi 3 Arbeitspunkte für diesen Arbeitsplan stehen die nacheinander "abgearbeitet" werden sollen. Hier würde als Simulation ein hochzählen oder ein Sleep() ja ausreichen...Bei Startzeit in der oberen Listview soll jedoch die Systemzeit eingetragen werden zudem dieser Arbeitspunkt angestoßen worden ist. Dann soll dieser arbeitspunkt wenn er fertig ist rausfliegen, und die beiden anderen rutschen in der Liste quasi "nach oben" und dann das selbe Spiel: Systemzeit soll eingetragen werden wenn der Arbeitspunkt "gestartet" wird, bis alle Arbeitspunkte durch sind. Diese 3 Arbeitspunkte die dort also einen einzigen Arbeitsplan darstellen sollen dazu diesen Statusbalken animieren.
    Dieser Ablauf soll dann quasi auch unten passieren. Sprich: Sind alle 3 Arbeitspunkte eines Arbeitsplans durchgelaufen, soll der eintrag des ersten Arbeitsplans unten in der Listview rausfliegen, die beiden noch vorhandenen quasi "nach oben rutschen", und dann soll der Arbeitsplan wieder angehangen werden mit einer größeren "geplanten Startzeit".
    ---
    Nochmal in kurz: Es sollen nach dem GO drücken 3 Arbeitspläne nacheinander ablaufen, der aktive Arbeitsplan wird in der unteren Listview "als ausgewählt makiert", dann werden oben seine Arbeitspunkte eingeblendet, diese laufen nacheinander durch und ziehen alle 3 zusammen 1x den Statusbalken mit sich, dann fliegt der Arbeitsplan aus der unteren Listview raus, die anderen 2 rutschen auf und er soll angehangen werden bis jeder Arbeitsplan 1x durchgelaufen ist.

    Hier eine kleine bildliche Darstellung (mit Paint gezaubert :D):
    [Blockierte Grafik: http://s14.directupload.net/images/121011/ybyr3c9i.png]
    und dies für jeden Punkt unten in der Liste 1x ;D

    Mein bisheriges vorgehen:

    Spoiler anzeigen
    [autoit]

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

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aufgabenliste-GUI erstellen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Global $window = GUICreate("Aufgabenliste", 250, 360) ;~ Erstelle das 'Aufgabenliste'-Fenster.

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

    ;~ Menü erstellen
    Global $datei = GUICtrlCreateMenu("Datei") ;~ Erstelle ein Menue mit dem ersten Menuepunkt 'Datei'.
    Global $datei_beenden = GUICtrlCreateMenuItem("Beenden", $datei) ;~ Erstelle ein Menueunterpunkt 'Beenden' fuer den Menuepunkt 'Datei'.

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

    ;~ Button erstellen
    Global $go_button = GUICtrlCreateButton("GO", 10, 5, 230, 30) ;~ Erstelle ein Button 'GO'.

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

    ;~ Progress Bar + Label
    Global $label_status = GUICtrlCreateLabel("Status:", 5, 42, 246, 20) ;~ Erstelle einen Anzeigetext 'Status'.
    Global $progress = GUICtrlCreateProgress(5, 56, 240, 17) ;~ Erstelle eine Statusleiste.

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

    ;~ Listview_top ... Arbeitspunkte des aktiven Arbeitsplans
    Global $top_listview = GUICtrlCreateListView("Startzeit |Arbeitspunkte ", 5, 75, 240, 120, $WS_BORDER, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES) ;~ Erstelle eine Tabellenansicht fuer Arbeitspunkte des aktiven Arbeitsplans (oben),
    _GUICtrlListView_SetColumnWidth($top_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($top_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,
    _GUICtrlListView_SetExtendedListViewStyle($top_listview, $LVS_EX_FULLROWSELECT) ;~ und waehle immer die gesamte Zeile aus.

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

    ;~ Listview_bot ... Arbeitsplaene in der Warteschlange
    Global $bot_label_status = GUICtrlCreateLabel("Warteschlange:", 5, 200, 200, 20) ;~ Erstelle einen Anzeigetext 'Warteschlange'.
    Global $bot_listview = GUICtrlCreateListView("Geplante Startzeit |Arbeitsplan ", 5, 215, 240, 120, $WS_BORDER, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES) ;~ Erstelle eine Tabellenansicht fuer Arbeitsplaene in der Warteschlange (unten),
    _GUICtrlListView_SetColumnWidth($bot_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($bot_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,
    _GUICtrlListView_SetExtendedListViewStyle($bot_listview, $LVS_EX_FULLROWSELECT) ;~ und waehle immer die gesamte Zeile aus.

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

    ;====================================== Aufgabenliste-GUI erstellen ======================================

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

    ;~ Mit GUI erstelltes Fenster auch anzeigen, da standard Einstellungen 'hidden' ist
    GUISetState(@SW_SHOW, $window)

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

    ;~ Schleife
    While 1
    Switch GUIGetMsg()
    Case $datei_beenden
    Exit
    Case $go_button
    go()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Subfunktionen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Func go()
    _GUICtrlListView_AddItem($bot_listview, "10:00")
    _GUICtrlListView_AddSubItem($bot_listview, 0, "Arbeitsplan 1", 1)
    _GUICtrlListView_AddItem($bot_listview, "12:00")
    _GUICtrlListView_AddSubItem($bot_listview, 1, "Arbeitsplan 2", 1)
    _GUICtrlListView_AddItem($bot_listview, "13:00")
    _GUICtrlListView_AddSubItem($bot_listview, 2, "Arbeitsplan 3", 1)

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

    _GUICtrlListView_SetItemSelected($bot_listview, 0)

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

    _GUICtrlListView_AddItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC)
    _GUICtrlListView_AddSubItem($top_listview, 0, "Arbeitspunkt 1", 1)
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 1, "Arbeitspunkt 2", 1)
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 2, "Arbeitspunkt 3", 1)
    Sleep(500)
    _GUICtrlListView_DeleteItem($top_listview, 0)
    EndFunc
    ;====================================== Subfunktionen ======================================

    [/autoit]

    Hier ist nun mein erstes Problem: Ich dachte ich lösche aus der Listview oben die erste zeile, damit ich dann den nächsten Arbeitspunkt starten kann. Aber hier hängt es grad irgendwie :/ Seit 2 Stunden starre ich auf den Text, ich seh den Fehler nicht ... :/

    Mir wäre wichtig das ihr wisst, ich will nicht einfach nur einen Code vorgelegt bekommen für meine Probleme, ich lerne momentan mit AutoIt zu programmieren (bzw. versuch es mir beizubringen), will es verstehen und arbeite selbstverständlich auch daran.
    Ich habe solch einen 'Progress' z.B. bisher nie genutzt, also solche Dinge könnten auch noch weggelassen werden, wenn ich mich damit beschäftige schaffe ich dies vielleicht ja auch alleine !! :)

    Also würde es mir vollkommen ausreichen wenn ihr mir bei Problemen helfen würdet und ich bis zum nächsten Problem den Code auch selber schreibe :)

    *freundlich um Hilfe bitten* *g*
    Achja, ich nehme Tipps (Lob und Kritik) zu meiner Schreibweise bezüglich des Codes oder der Wahl meiner Variablen geren an :P :)
    Grüße

    Nun hab ich so lang am Thread geschrieben, da ist glatt mein Kaffee kalt :O

    Grüße Yaerox

    Grüne Hölle

    3 Mal editiert, zuletzt von Yaerox (12. Oktober 2012 um 11:14)

  • So peinlich "-.-

    Kaum mal 45 Min den Thread geschrieben, Kopf anscheinend klarer da findet man: _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0) ...

    Darf der Thread evtl. bestehen bleiben, oder nach Projekte o.ä. verschoben werden?

    Grüße Yaerox

    Grüne Hölle

  • Okay, soweit ist der Groschen gefallen, und ich denke das Programm stellt die Visualisierung für meine Zwecke anständig da.

    Soweit funktionierend:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aufgabenliste-GUI erstellen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Global $window = GUICreate("Aufgabenliste", 250, 360) ;~ Erstelle das 'Aufgabenliste'-Fenster.

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

    ;~ Menü erstellen
    Global $datei = GUICtrlCreateMenu("Datei") ;~ Erstelle ein Menue mit dem ersten Menuepunkt 'Datei'.
    Global $datei_beenden = GUICtrlCreateMenuItem("Beenden", $datei) ;~ Erstelle ein Menueunterpunkt 'Beenden' fuer den Menuepunkt 'Datei'.

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

    ;~ Button erstellen
    Global $go_button = GUICtrlCreateButton("GO", 10, 5, 230, 30) ;~ Erstelle ein Button 'GO'.

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

    ;~ Progress Bar + Label
    Global $label_status = GUICtrlCreateLabel("Status:", 5, 42, 246, 20) ;~ Erstelle einen Anzeigetext 'Status'.
    Global $progress = GUICtrlCreateProgress(5, 56, 240, 17) ;~ Erstelle eine Statusleiste.

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

    ;~ Listview_top ... Arbeitspunkte des aktiven Arbeitsplans
    Global $top_listview = GUICtrlCreateListView("Startzeit |Arbeitspunkte ", 5, 75, 240, 120, $WS_BORDER, $LVS_EX_FULLROWSELECT) ;~ Erstelle eine Tabellenansicht fuer Arbeitspunkte des aktiven Arbeitsplans (oben),
    _GUICtrlListView_SetColumnWidth($top_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($top_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,

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

    ;~ Listview_bot ... Arbeitsplaene in der Warteschlange
    Global $bot_label_status = GUICtrlCreateLabel("Warteschlange:", 5, 200, 200, 20) ;~ Erstelle einen Anzeigetext 'Warteschlange'.
    Global $bot_listview = GUICtrlCreateListView("Geplante Startzeit |Arbeitsplan ", 5, 215, 240, 120) ;~ Erstelle eine Tabellenansicht fuer Arbeitsplaene in der Warteschlange (unten),
    _GUICtrlListView_SetColumnWidth($bot_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($bot_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,
    _GUICtrlListView_SetExtendedListViewStyle($bot_listview, $LVS_EX_FULLROWSELECT)
    ;====================================== Aufgabenliste-GUI erstellen ======================================

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

    ;~ Mit GUI erstelltes Fenster auch anzeigen, da standard Einstellungen 'hidden' ist
    GUISetState(@SW_SHOW, $window)

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

    ;~ Schleife
    While 1
    Switch GUIGetMsg()
    Case $datei_beenden
    Exit
    Case $go_button
    go()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Subfunktionen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Func go()
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($bot_listview))
    ;~ Local $item1 = GUICtrlCreateListViewItem("10:00|Arbeitsplan1", $bot_listview)
    ;~ Local $item2 = GUICtrlCreateListViewItem("12:00|Arbeitsplan2", $bot_listview)
    ;~ Local $item3 = GUICtrlCreateListViewItem("14:00|Arbeitsplan3", $bot_listview)
    _GUICtrlListView_AddItem($bot_listview, "10:00")
    _GUICtrlListView_AddSubItem($bot_listview, 0, "Arbeitsplan 1", 1)
    _GUICtrlListView_AddItem($bot_listview, "12:00")
    _GUICtrlListView_AddSubItem($bot_listview, 1, "Arbeitsplan 2", 1)
    _GUICtrlListView_AddItem($bot_listview, "13:00")
    _GUICtrlListView_AddSubItem($bot_listview, 2, "Arbeitsplan 3", 1)

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

    Local $zaehler = 0
    Local $i = 1
    Local $wait = 100
    Local $s = 0
    Do
    ;~ If $zaehler = 0 Then
    ;~ Local $item = $item1
    ;~ ElseIf $zaehler = 1 Then
    ;~ GUICtrlSetBkColor($item1, 255255255) ; soll eig die Farbe löschen bzw. weiß sein ... :/
    ;~ Local $item = $item2
    ;~ ElseIf $zaehler = 2 Then
    ;~ GUICtrlSetBkColor($item2, 255255255) ; soll eig die Farbe löschen bzw. weiß sein ... :/
    ;~ Local $item = $item3
    ;~ EndIf

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

    GUICtrlSetData($progress, 0)
    _GUICtrlListView_SetItemSelected($bot_listview, 0)

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

    _GUICtrlListView_AddItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC)
    _GUICtrlListView_AddSubItem($top_listview, 0, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    ;~ If GUICtrlSetBkColor($item, 030144255) = 0 Then
    ;~ Exit
    ;~ EndIf
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 1, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 2, "Arbeitspunkt" & Int(Random(0, 10)), 1)

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

    For $si = 0 To 30
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 30 To 60
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 60 To 90
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    $zaehler = $zaehler + 1
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($bot_listview), 0)

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

    GUICtrlSetData($progress, 100)
    Sleep(1000)

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

    _GUICtrlListView_AddItem($bot_listview, Int(Random(0, 24)) & ":" & Int(Random(0, 60)))
    _GUICtrlListView_AddSubItem($bot_listview, 2, "Arbeitsplan " & $zaehler, 1)
    $i = $i + 3

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

    Until ($zaehler = 3)
    Sleep(1000)
    GUICtrlSetData($progress, 0)
    EndFunc ;==>go
    ;====================================== Subfunktionen ======================================

    [/autoit]


    Nun hätte ich jedoch noch gerne, dass nach dem Selektieren einer Zeile, oder einfach die zu selektierende Zeile gefärbt wird.
    Dazu habe ich gesehen gibt es „GUICtrlSetBkColor ( controlID, backgroundcolor )“ aber das geht damit scheinbar nur wenn ich dann die ListviewItems mit den von AutoIt vorhandenen Funktionen hinzufüge. Die User-Definded-Functions _GUICTRL... kann ich dann nicht nutzen oder? Ich habe versucht die Handles auszulesen und ähnliches um halt zu sagen, wenn du in der bot_listview das erste Item selektiert hast färbe es blau, und die gesamte top_listview in der gleichen Farbe. Erfolgslos.
    Wenn das Item dann gelöscht worden ist, bin ich davon ausgegangen, dass die Färbung auch gelöscht worden ist.

    Kann mir da vielleicht jemand helfen?

    Hier die bisher einzige Lösung von mir mit dem Problem, dass erst beim zweiten mal GO drücken gefärbt wird, und die Listview Bot dann flasch angezeigt ist, da Sie im zweiten durchlauf dann so ausschauen soll wie beim ersten...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aufgabenliste-GUI erstellen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Global $window = GUICreate("Aufgabenliste", 250, 360) ;~ Erstelle das 'Aufgabenliste'-Fenster.

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

    ;~ Menü erstellen
    Global $datei = GUICtrlCreateMenu("Datei") ;~ Erstelle ein Menue mit dem ersten Menuepunkt 'Datei'.
    Global $datei_beenden = GUICtrlCreateMenuItem("Beenden", $datei) ;~ Erstelle ein Menueunterpunkt 'Beenden' fuer den Menuepunkt 'Datei'.

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

    ;~ Button erstellen
    Global $go_button = GUICtrlCreateButton("GO", 10, 5, 230, 30) ;~ Erstelle ein Button 'GO'.

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

    ;~ Progress Bar + Label
    Global $label_status = GUICtrlCreateLabel("Status:", 5, 42, 246, 20) ;~ Erstelle einen Anzeigetext 'Status'.
    Global $progress = GUICtrlCreateProgress(5, 56, 240, 17) ;~ Erstelle eine Statusleiste.

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

    ;~ Listview_top ... Arbeitspunkte des aktiven Arbeitsplans
    Global $top_listview = GUICtrlCreateListView("Startzeit |Arbeitspunkte ", 5, 75, 240, 120, $WS_BORDER, $LVS_EX_FULLROWSELECT) ;~ Erstelle eine Tabellenansicht fuer Arbeitspunkte des aktiven Arbeitsplans (oben),
    _GUICtrlListView_SetColumnWidth($top_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($top_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,

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

    ;~ Listview_bot ... Arbeitsplaene in der Warteschlange
    Global $bot_label_status = GUICtrlCreateLabel("Warteschlange:", 5, 200, 200, 20) ;~ Erstelle einen Anzeigetext 'Warteschlange'.
    Global $bot_listview = GUICtrlCreateListView("Geplante Startzeit |Arbeitsplan ", 5, 215, 240, 120) ;~ Erstelle eine Tabellenansicht fuer Arbeitsplaene in der Warteschlange (unten),
    _GUICtrlListView_SetColumnWidth($bot_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($bot_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,
    _GUICtrlListView_SetExtendedListViewStyle($bot_listview, $LVS_EX_FULLROWSELECT)
    ;====================================== Aufgabenliste-GUI erstellen ======================================

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

    ;~ Mit GUI erstelltes Fenster auch anzeigen, da standard Einstellungen 'hidden' ist
    GUISetState(@SW_SHOW, $window)

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

    ;~ Schleife
    While 1
    Switch GUIGetMsg()
    Case $datei_beenden
    Exit
    Case $go_button
    go()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Subfunktionen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Func go()
    ;~ _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($bot_listview))
    Local $item1 = GUICtrlCreateListViewItem("10:00|Arbeitsplan1", $bot_listview)
    Local $item2 = GUICtrlCreateListViewItem("12:00|Arbeitsplan2", $bot_listview)
    Local $item3 = GUICtrlCreateListViewItem("14:00|Arbeitsplan3", $bot_listview)
    ;~ _GUICtrlListView_AddItem($bot_listview, "10:00")
    ;~ _GUICtrlListView_AddSubItem($bot_listview, 0, "Arbeitsplan 1", 1)
    ;~ _GUICtrlListView_AddItem($bot_listview, "12:00")
    ;~ _GUICtrlListView_AddSubItem($bot_listview, 1, "Arbeitsplan 2", 1)
    ;~ _GUICtrlListView_AddItem($bot_listview, "13:00")
    ;~ _GUICtrlListView_AddSubItem($bot_listview, 2, "Arbeitsplan 3", 1)

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

    Local $zaehler = 0
    Local $i = 1
    Local $wait = 100
    Local $s = 0
    Do
    If $zaehler = 0 Then
    Local $item = $item1
    ElseIf $zaehler = 1 Then
    GUICtrlSetBkColor($item1, 255255255) ; soll eig die Farbe löschen bzw. weiß sein ... :/
    Local $item = $item2
    ElseIf $zaehler = 2 Then
    GUICtrlSetBkColor($item2, 255255255) ; soll eig die Farbe löschen bzw. weiß sein ... :/
    Local $item = $item3
    EndIf

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

    GUICtrlSetData($progress, 0)
    _GUICtrlListView_SetItemSelected($bot_listview, 0)

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

    _GUICtrlListView_AddItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC)
    _GUICtrlListView_AddSubItem($top_listview, 0, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    If GUICtrlSetBkColor($item, 030144255) = 0 Then
    Exit
    EndIf
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 1, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 2, "Arbeitspunkt" & Int(Random(0, 10)), 1)

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

    For $si = 0 To 30
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 30 To 60
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 60 To 90
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    $zaehler = $zaehler + 1
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($bot_listview), 0)

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

    GUICtrlSetData($progress, 100)
    Sleep(1000)

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

    _GUICtrlListView_AddItem($bot_listview, Int(Random(0, 24)) & ":" & Int(Random(0, 60)))
    _GUICtrlListView_AddSubItem($bot_listview, 2, "Arbeitsplan " & $zaehler, 1)
    $i = $i + 3

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

    If $zaehler = 3 Then
    GUICtrlSetBkColor($item3, 255255255) ; soll eig die Farbe löschen bzw. weiß sein ... :/
    EndIf

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

    Until ($zaehler = 3)
    Sleep(1000)
    GUICtrlSetData($progress, 0)
    EndFunc ;==>go
    ;====================================== Subfunktionen ======================================

    [/autoit]


    Ich habe die Zeile 59:

    [autoit]

    ;~ _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($bot_listview))

    [/autoit]

    auskommentiert, da wenn ich diese aktiv laufen lasse ist die Listview dann zwar richtig, aber es wird nicht mehr gefärbt :/

    Grüße

    PS: Das färben der oberen Listview ist hier noch nirgends, da ich erstmal die untere Zeile gerne färben würde :/

    Grüße Yaerox

    Grüne Hölle

    Einmal editiert, zuletzt von Yaerox (12. Oktober 2012 um 10:03)

  • Hab mich mit

    [autoit]

    GUICtrlSetBkColor(_WinAPI_GetDlgCtrlID(GUICtrlGetHandle($bot_listview)), 030144255)

    [/autoit]

    versucht, aber so färbt er die ganze Listview was für oben korrekt ist aber für unten nicht...

    Ich denke die Lösung müsste etwas sein wie: GUICtrlSetBkColor( immer_die_oberste_zeile, farbe ) oder falls die Möglichkeit besteht die ControlID der Zeile rauszukriegen, die es meines Wissens nicht gibt, oder? Ich würd einfach mal behaupten die Listview ist ein Ctrl die hat eine ID und fertig.

    Falls ich falsch liege korrigiert mich bitte :P

    Edit: Es scheint mir als würde es nur 2 Varianten geben ...

    Entweder Script neuschreiben mit den AutoIt Funktionen (GUICtrLCreateListView) oder mit GDI arbeiten ... kann das sein? :/ Versuche grad über GDI etwas zu finden ^^

    Grüße Yaerox

    Grüne Hölle

    Einmal editiert, zuletzt von Yaerox (12. Oktober 2012 um 10:37)

  • Wahrscheinlich nicht die Beste Lösung, aber ich bin zufrieden :)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>
    #include <WinAPI.au3>
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aufgabenliste-GUI erstellen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Global $window = GUICreate("Aufgabenliste", 250, 360) ;~ Erstelle das 'Aufgabenliste'-Fenster.

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

    ;~ Menü erstellen
    Global $datei = GUICtrlCreateMenu("Datei") ;~ Erstelle ein Menue mit dem ersten Menuepunkt 'Datei'.
    Global $datei_beenden = GUICtrlCreateMenuItem("Beenden", $datei) ;~ Erstelle ein Menueunterpunkt 'Beenden' fuer den Menuepunkt 'Datei'.

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

    ;~ Button erstellen
    Global $go_button = GUICtrlCreateButton("GO", 10, 5, 230, 30) ;~ Erstelle ein Button 'GO'.

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

    ;~ Progress Bar + Label
    Global $label_status = GUICtrlCreateLabel("Status:", 5, 42, 246, 20) ;~ Erstelle einen Anzeigetext 'Status'.
    Global $progress = GUICtrlCreateProgress(5, 56, 240, 17) ;~ Erstelle eine Statusleiste.

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

    ;~ Listview_top ... Arbeitspunkte des aktiven Arbeitsplans
    Global $top_listview = GUICtrlCreateListView("Startzeit |Arbeitspunkte ", 5, 75, 240, 120, $WS_BORDER, $LVS_EX_FULLROWSELECT) ;~ Erstelle eine Tabellenansicht fuer Arbeitspunkte des aktiven Arbeitsplans (oben),
    _GUICtrlListView_SetColumnWidth($top_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($top_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,

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

    ;~ Listview_bot ... Arbeitsplaene in der Warteschlange
    Global $bot_label_status = GUICtrlCreateLabel("Warteschlange:", 5, 200, 200, 20) ;~ Erstelle einen Anzeigetext 'Warteschlange'.
    Global $bot_listview = GUICtrlCreateListView("Geplante Startzeit |Arbeitsplan ", 5, 215, 240, 120) ;~ Erstelle eine Tabellenansicht fuer Arbeitsplaene in der Warteschlange (unten),
    _GUICtrlListView_SetColumnWidth($bot_listview, 0, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die erste Spalte an,
    _GUICtrlListView_SetColumnWidth($bot_listview, 1, $LVSCW_AUTOSIZE_USEHEADER) ;~ passe die Spaltenbreite an den Spaltennamen für die zweite Spalte an,
    _GUICtrlListView_SetExtendedListViewStyle($bot_listview, $LVS_EX_FULLROWSELECT)
    ;====================================== Aufgabenliste-GUI erstellen ======================================

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

    ;~ Mit GUI erstelltes Fenster auch anzeigen, da standard Einstellungen 'hidden' ist
    GUISetState(@SW_SHOW, $window)

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

    ;~ Schleife
    While 1
    Switch GUIGetMsg()
    Case $datei_beenden
    Exit
    Case $go_button
    go()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Subfunktionen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Func go()
    Local $carray[3]
    $carray[0] = 0xFFFF00
    $carray[1] = 0x00ff00
    $carray[2] = 0xff0000
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($bot_listview))
    Local $i
    Local $zaehler
    Global $lvitems[3]
    $zaehler = 0
    For $i = 0 To 2
    $lvitems[$i] = GUICtrlCreateListViewItem(Int(Random(0, 24)) & ":" & Int(Random(0, 60)) & " |Arbeitsplan " & $zaehler, $bot_listview)
    $zaehler = $zaehler +1
    Next

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

    $zaehler = 0
    $i = 1
    Local $ii = 0
    Local $wait = 100
    Local $s = 0
    Do
    GUICtrlSetData($progress, 0)

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

    _GUICtrlListView_AddItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC)
    _GUICtrlListView_AddSubItem($top_listview, 0, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    GUICtrlSetBkColor($lvitems[$ii], $carray[$ii])
    GUICtrlSetBkColor($top_listview, $carray[$ii])
    $ii = $ii + 1

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

    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 1, "Arbeitspunkt" & Int(Random(0, 10)), 1)
    _GUICtrlListView_AddItem($top_listview, "")
    _GUICtrlListView_AddSubItem($top_listview, 2, "Arbeitspunkt" & Int(Random(0, 10)), 1)

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

    For $si = 0 To 30
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 30 To 60
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    _GUICtrlListView_SetItem($top_listview, @HOUR & ":" & @MIN & ":" & @SEC, 0)

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

    For $si = 60 To 90
    GUICtrlSetData($progress, $si)
    Sleep($wait)
    Next

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

    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($top_listview), 0)
    $zaehler = $zaehler + 1
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($bot_listview), 0)

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

    GUICtrlSetData($progress, 100)
    Sleep(1000)

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

    GUICtrlCreateListViewItem(Int(Random(0, 24)) & ":" & Int(Random(0, 60)) & "|Arbeitsplan " & Int(Random(1, 10)), $bot_listview)
    $i = $i + 3

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

    GUICtrlSetBkColor($top_listview, 0xffffff)
    Until ($zaehler = 3)
    Sleep(1000)
    GUICtrlSetData($progress, 0)
    EndFunc ;==>go
    ;====================================== Subfunktionen ======================================

    [/autoit]

    Grüße Yaerox

    Grüne Hölle