Hallo Leute,
ich bin ein großer Freund des ProgressBar (PB), mich stört aber die Handhabung. Derzeit läuft der Spaß ja so:
1) manuell Abzählen wie viele Arbeitsschritte ich per PB "visualisieren" möchte
2) PB entsprechend konfigurieren (Min, Max, Step, etc)
3) nach jedem Arbeitsschritt manuell Performstep ausführen (ich gehe jetzt mal von einer Problemstellung aus, die sich nicht per Schleife lösen lässt)
Mich nervt dabei vor allem, wie leicht sich durch eine Modifikation des Codes ein Fehler(naja eher Ungenauigkeit) in der PB einschleicht (Codezeile hinzugefügt, Max nicht angepasst oder PerformStep vergessen, etc). Problematisch ist insbesondere, dass mein aktuelles Projekt zukünftig durch absolute Laien weitergepflegt wird - da schleicht sich schonmal die ein oder andere Unachtsamkeit ein, zumal es für meine Nachfolger ja auch fremder Code ist.
Nun zur Idee:
a) Könnte man einen Codeabschnitt analog zu Region/Using/TryCatch markieren, meinetwegen als "UseProgressBar"?
b) Lässt sich das Betreten* des so markierten Abschnitt auswerten und per Event anzeigen? (*wie ein StepInto im Debugger)
c) Lässt sich automatisiert zählen, wieviele Befehle (zur Not auch LOC) im markierten Abschnitt sind?
d) Lässt sich feststellen wann ein einzelner Befehl im Abschnitt abgearbeitet wurde? (wie NextStatement im Debugger)
Damit könnte man folgende Struktur umsetzen:
Das Programm springt in den "Codeblock", ein Event wird gefeuert damit eine Routine die Anzahl der Befehle im Abschnitt zählt und ein ProgressBar entsprechend konfiguriert.
Nach jedem Befehl feuert ein anderes Event und PerformStep wird ausgeführt. Damit würde die ganze Konfiguration und das manuelle Setzen von PerformStep entfallen. Man müsste nur darauf achten, dass der entsprechende Code vom oben definierten Block umgeben ist.
Nun zum Problem:
Ich habe keine Idee ob oder wie man so etwas umsetzen könnte und ob es überhaupt Sinn macht. Es ist erstmal nur eine fixe Idee, evtl übersehe ich eine deutlich einfachere Lösung. Es wäre cool, wenn ihr eure Meinung dazu und etwaige Ideen wie man einen Lösungsansatz gestalten könnte, hier reinschreibt.
lg
ich bin ein großer Freund des ProgressBar (PB), mich stört aber die Handhabung. Derzeit läuft der Spaß ja so:
1) manuell Abzählen wie viele Arbeitsschritte ich per PB "visualisieren" möchte
2) PB entsprechend konfigurieren (Min, Max, Step, etc)
3) nach jedem Arbeitsschritt manuell Performstep ausführen (ich gehe jetzt mal von einer Problemstellung aus, die sich nicht per Schleife lösen lässt)
Mich nervt dabei vor allem, wie leicht sich durch eine Modifikation des Codes ein Fehler(naja eher Ungenauigkeit) in der PB einschleicht (Codezeile hinzugefügt, Max nicht angepasst oder PerformStep vergessen, etc). Problematisch ist insbesondere, dass mein aktuelles Projekt zukünftig durch absolute Laien weitergepflegt wird - da schleicht sich schonmal die ein oder andere Unachtsamkeit ein, zumal es für meine Nachfolger ja auch fremder Code ist.
Nun zur Idee:
a) Könnte man einen Codeabschnitt analog zu Region/Using/TryCatch markieren, meinetwegen als "UseProgressBar"?
b) Lässt sich das Betreten* des so markierten Abschnitt auswerten und per Event anzeigen? (*wie ein StepInto im Debugger)
c) Lässt sich automatisiert zählen, wieviele Befehle (zur Not auch LOC) im markierten Abschnitt sind?
d) Lässt sich feststellen wann ein einzelner Befehl im Abschnitt abgearbeitet wurde? (wie NextStatement im Debugger)
Damit könnte man folgende Struktur umsetzen:
Das Programm springt in den "Codeblock", ein Event wird gefeuert damit eine Routine die Anzahl der Befehle im Abschnitt zählt und ein ProgressBar entsprechend konfiguriert.
Nach jedem Befehl feuert ein anderes Event und PerformStep wird ausgeführt. Damit würde die ganze Konfiguration und das manuelle Setzen von PerformStep entfallen. Man müsste nur darauf achten, dass der entsprechende Code vom oben definierten Block umgeben ist.
Nun zum Problem:
Ich habe keine Idee ob oder wie man so etwas umsetzen könnte und ob es überhaupt Sinn macht. Es ist erstmal nur eine fixe Idee, evtl übersehe ich eine deutlich einfachere Lösung. Es wäre cool, wenn ihr eure Meinung dazu und etwaige Ideen wie man einen Lösungsansatz gestalten könnte, hier reinschreibt.
lg