Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TStatusBar fortlaufend und ressourcensparend aktualisieren (https://www.delphipraxis.net/113539-tstatusbar-fortlaufend-und-ressourcensparend-aktualisieren.html)

DevidEspenschied 9. Mai 2008 14:32


TStatusBar fortlaufend und ressourcensparend aktualisieren
 
Hallo,

ich habe in einer Delphi-Anwendung eine normale StatusBar mit verschiedenen Panels eingerichtet und habe diese mit Daten befüllt. Die ständig veränderbaren Daten möchte ich nun fortlaufend ressourcensparend aktualisieren - dies wären etwa:

- die aktuelle Uhrzeit
- das aktuelle Datum
- die vergangene Zeit dem Windows-Start
- die Statustasten NumLock, CapsLock und ScrollLock

Ich habe zwar einen Weg, um das ganze fortlaufend zu aktualisieren, dennoch frage ich mich, ob es nicht doch eine effektivere Methode gibt. Meine Methode sieht folgendermaßen aus:

Neben der Deklaration der Statusbar füge ich die TTimer-Komponente zum Hauptformular hinzu und erstelle für das OnTimer-Ereignis die Timer1Timer-Prozedur. Letztere ruft wiederum die Prozedur UpdateStatusBar auf, welche auch in FormCreate einmalig aufgerufen wird.

Delphi-Quellcode:
VAR StatusBar1 : TStatusBar;
    Timer1: TTimer;

PROCEDURE TMainForm.FormCreate(Sender: TObject);
BEGIN
  UpdateStatusBar;
END;

PROCEDURE TMainForm.Timer1Timer(Sender: TObject);
BEGIN
  UpdateStatusBar;
END;

PROCEDURE TMainForm.UpdateStatusBar;
BEGIN
  {hier werden die einzelnen StatusBar-Panels mit aktuellen Inhalten gefüllt}
END;
Was haltet ihr von dieser Implementation ?

RavenIV 9. Mai 2008 15:07

Re: TStatusBar fortlaufend und ressourcensparend aktualisier
 
Zitat:

Zitat von devidespe
Was haltet ihr von dieser Implementation ?

Würde ich genauso machen.
Irgendwie müssen die Daten ja in die Statusbar kommen...

x000x 9. Mai 2008 16:01

Re: TStatusBar fortlaufend und ressourcensparend aktualisier
 
Moin moin,
Zitat:

Zitat von devidespe
- die aktuelle Uhrzeit
- die vergangene Zeit dem Windows-Start

Diese Anzeigen müssen ja zeitgesteuert aktualisiert werden. Würd ich auch im Timer machen...
Zitat:

Zitat von devidespe
- das aktuelle Datum

braucht halt nur beim Datumswechsel aktualisiert werden; da sowieso ein Timer benutzt wird...
Zitat:

Zitat von devidespe
- die Statustasten NumLock, CapsLock und ScrollLock

halt nur aktualisieren, wenn der Status sich ändert

p80286 9. Mai 2008 16:05

Re: TStatusBar fortlaufend und ressourcensparend aktualisier
 
Hallo ,
da x000x schneller war als ich bleibt nur noch die Frage mit welcher Auflösung Dein Timer läuft.
So alle Stunde mal eine Neuanzeige ist ja arg wenig, aber alle hundertstel Sekunde auch nicht das gelbe vom Ei.

Gruß
K-H

DevidEspenschied 9. Mai 2008 17:20

Re: TStatusBar fortlaufend und ressourcensparend aktualisier
 
Zitat:

Zitat von p80286
Hallo ,
da x000x schneller war als ich bleibt nur noch die Frage mit welcher Auflösung Dein Timer läuft.
So alle Stunde mal eine Neuanzeige ist ja arg wenig, aber alle hundertstel Sekunde auch nicht das gelbe vom Ei.

Gruß
K-H

Das OnTime-Ereignis wird ausgelöst, sobald die in der Eigenschaft Interval angegebenen Millisekunden abgelaufen sind. Bei mir sind das 1000, also 1 Sekunde. Das dürfte auch für die Aktualisierung der Zeit ausreichen, da ich keine Millisekunden berücksichtige.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz