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
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aufgabenliste-GUI erstellen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Global $window = GUICreate("Aufgabenliste", 250, 360) ;~ Erstelle das 'Aufgabenliste'-Fenster.
;~ 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'.
;~ Button erstellen
Global $go_button = GUICtrlCreateButton("GO", 10, 5, 230, 30) ;~ Erstelle ein Button 'GO'.
;~ 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.
;~ 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.
;~ 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.
;====================================== Aufgabenliste-GUI erstellen ======================================
[/autoit] [autoit][/autoit] [autoit];~ Mit GUI erstelltes Fenster auch anzeigen, da standard Einstellungen 'hidden' ist
GUISetState(@SW_SHOW, $window)
;~ Schleife
While 1
Switch GUIGetMsg()
Case $datei_beenden
Exit
Case $go_button
go()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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)
_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 ======================================
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
Grüße
Nun hab ich so lang am Thread geschrieben, da ist glatt mein Kaffee kalt :O