Daten im Label ständig aktualisieren

gerni78

Grünschnabel
Hallo zusammen,

ich habe ein Problem und hoffe ihr könnt mir da etwas auf die Sprünge helfen.

Also:
Ich habe mir ein Tool geschrieben welches CAN-Messages auf dem Bus monitort, zusammenrechnet und dann in einem Label anzeigt.
Nun sind das halt irgendwelche Stromwerte und solange welche über den CAN kommen wird das Label auch ständig aktualisiert. Wenn der andere Bus-Teilnehmer nun ausfällt und keine Stromwerte mehr kommen, habe ich das Problem, dass in dem Label noch der letzte Wert drin steht.

Meine Lösungsansätze:
a) man setzt die Labels zyklisch auf "----" zurück => finde ich nicht so toll, weil unter Umständen dann auch zurück gesetzt wird, wenn noch Daten kommen (Flackern im Display)
b) man baut sich einen Counter der bei jedem Schreibzyklus ins Label zurückgesetzt wird, wenn keine Daten mehr kommen, läuft der Counter an sein Ende und setzt des Label auf "----" => wäre machbar, es sind aber sehr viele Labels und wäre mit sehr viel rumcoden verbunden, was dann sehr fehlerträchtig wäre
c) man nutzt das event TextChanged um die Änderung an dem Label abzufangen => ist auch nicht ideal, weil es nicht auslöst wenn 2 mal der identisch Stromwerte reingeschrieben wird

Also wenn noch jemand einen super Ansatz hätte wäre ich ihm echt dankbar!

Vielen Dank schon mal
Gruss
Gerni
 
Hallo Gerni,

dein Ansatz b) erscheint mir am sinnvollsten. Du solltest dafür von "Label" eine eigene Klasse ableiten und die Überwachung dort implementieren. Dann hält sich das Rumcoden auch in Grenzen und es ist egal, wieviel Labels verwendetet werden.
Neben der Counterlösung könntest du z.B. bei jedem Schreibvorgang den dazu gehörigen Zeitpunkt merken und über einen Timer regelmäßig prüfen, wie lange der letzte Schreibvorgang zurückliegt. Bei Überschreiten einer bestimmten Zeitspanne wird der Text zurückgesetzt und der Timer gestoppt.

Gruß
MCoder
 
Zurück