Laden...

StatusStrip mit aktueller Zeit

Erstellt von pkoeppe vor 17 Jahren Letzter Beitrag vor 17 Jahren 9.456 Views
P
pkoeppe Themenstarter:in
319 Beiträge seit 2006
vor 17 Jahren
StatusStrip mit aktueller Zeit

Hallo Leute,

habe mal wieder ein Problem, bei dem ich Eure Hilfe brauche. In meiner Anwendung soll in einer "Statusleiste" immer die aktuelle Zeit angezeigt werden. In VB6 war das ganz easy indem man den Style sbrDate bzw. sbrTime ausgewählt hat. Sowas scheint es in für den StatusStrip in C# nicht zu geben. Was zur Folge hat, dass ich mir das selber nachbauen muss. Nun hatte ich überlegt ein Label und einen Timer zu nehmen und den Timer in x ms Abstand die aktuelle Zeit holen und das Label aktualisieren zu lassen. Ich denke, dass kann man auch besser lösen und hoffe auf Vorschläge und Tipps von Euch.

Gruß
Patrick

Wer nicht fragt, bleibt dumm.

T
18 Beiträge seit 2006
vor 17 Jahren

Hallo pkautz,

am einfachsten ist wohl folgende Syntax:

toolStripStatusLabel2.Text = DateTime.Now.ToLongTimeString();

Du musst allerdings selbst dafür sorgen, daß die Zeit weitergezählt wird.

mfg - Hans

P
pkoeppe Themenstarter:in
319 Beiträge seit 2006
vor 17 Jahren

Und wie stellt man das mit dem Weiterzählen am Besten an, so dass ich durch z.B. einen Timer nicht die komplette Anwendung lahmlege?

Gruß
Patrick

Wer nicht fragt, bleibt dumm.

-
885 Beiträge seit 2004
vor 17 Jahren

Such mal nach Timer, die Lösung steht x-Mal hier im Forum.

P
pkoeppe Themenstarter:in
319 Beiträge seit 2006
vor 17 Jahren

Das Problem ist ich möchte den Timer eigentlich nicht jede Sekunde ticken lassen (wäre doch bestimmt nicht sehr Ressourcen schonend), sondern halt nur so dass die Zeit aktuell bleibt. Gibt es kein Event, welches mitteilt das sich die Systemzeit geändert hat?

Gruß
Patrick

Wer nicht fragt, bleibt dumm.

228 Beiträge seit 2006
vor 17 Jahren

du könntest auch threaden...

Medieval Fantasy Online - ORPG Projekt
.NET - Try and Error - Blog - Gemeinschaftsblog
MEt45's Dev Garage - Eigener Blog

170 Beiträge seit 2005
vor 17 Jahren

Ein Extra Event wird es dafür nicht geben, aber ein Timer ist nun nicht wirklich
Ressourcen Verschwendung. Schließlich willst du ja nur einen String ändern
und anzeigen. Aber meine große Frage an der Sache: Wofür eine Uhr in der
Statusleiste? Windows bietet doch schon eine Uhr in der Taskleiste? Für mich
sind solche (meist) sinnfreien Spielereien eher ein Indiz für schlechte Software...

-
885 Beiträge seit 2004
vor 17 Jahren

Wie inTrance schon sagte. Völlig sinnlos. Erst recht, wenn sich die Zeit nicht ändert jede Sekunde.

D
6 Beiträge seit 2006
vor 17 Jahren

hallo pkautz,

hatte gleiches Problem. Bildschirmfüllende Applikation und Taskleiste nicht sichtbar.
Ich habe es auch mal mit einem Timer versucht, der nicht in einem eigenen Thread lief.
Es ist wirklich erstaunlich, wie schnell er beginnt, weit von der eigentlichen Zeit abzuweichen 8o

Jede intensive Operation Deines Programms verzögert das Event Deines Timers
(Nachrichtenschleife?).

Deshalb rate ich Dir aus Erfahrung von der threadlosen Timerverwendung ab, habe aber mom. auch keine andere Idee.

Grüße,

der dirk

379 Beiträge seit 2004
vor 17 Jahren

Wenn du denn unbedingt eine Uhr einbinden willst, kannst du ja auch die Sekunden weg lassen und nur jede Minute den Timer ticken lassen 😉

ciao Anke

191 Beiträge seit 2006
vor 17 Jahren

Original von der dirk
Es ist wirklich erstaunlich, wie schnell er beginnt, weit von der eigentlichen Zeit abzuweichen 8o

Ich glaube es wäre nicht wirklich sinnvoll eine eigene Zeit laufen zu lassen.
Einfach jedesmal die aktuelle Uhrzeit vom BIOS holen bzw. jede Minute und in der Zwischenzeit einfach so zählen lassen, wenn ihr glaub, dass "DateTime.Now" zu viel Performance verschwendet.
(Man kann es sich auch schwer machen ^^)

Jede intensive Operation Deines Programms verzögert das Event Deines Timers
(Nachrichtenschleife?).

Deshalb rate ich Dir aus Erfahrung von der threadlosen Timerverwendung ab, habe aber mom. auch keine andere Idee.

Stichwort: Backgroundworker
Kann man alles mit machen und ist einfach 😉

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo zusammen,

einen auf eine Sekunde gestellten Timer zu verwenden, macht nicht das geringste Performance-Problem (selbst 1/10s wäre noch locker drin). Und natürlich muss man trotzdem jedesmal die aktuelle Uhrzeit vom System abfragen. Dann gibt es auch keine Abweichung.

Das man als Mensch ziemlich ausgelastet ist, wenn man jede Sekunden auf die Uhr schauen soll, ist schon klar. Aber ein Rechner langweilt sich bei so einer Aufgabe tierisch.

herbivore