AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TStatusBar fortlaufend und ressourcensparend aktualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStatusBar fortlaufend und ressourcensparend aktualisieren

Ein Thema von devidespe · begonnen am 9. Mai 2008 · letzter Beitrag vom 9. Mai 2008
Antwort Antwort
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

TStatusBar fortlaufend und ressourcensparend aktualisieren

  Alt 9. Mai 2008, 14:32
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 ?
Devid
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TStatusBar fortlaufend und ressourcensparend aktualisier

  Alt 9. Mai 2008, 15:07
Zitat von devidespe:
Was haltet ihr von dieser Implementation ?
Würde ich genauso machen.
Irgendwie müssen die Daten ja in die Statusbar kommen...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#3

Re: TStatusBar fortlaufend und ressourcensparend aktualisier

  Alt 9. Mai 2008, 16:01
Moin moin,
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 von devidespe:
- das aktuelle Datum
braucht halt nur beim Datumswechsel aktualisiert werden; da sowieso ein Timer benutzt wird...
Zitat von devidespe:
- die Statustasten NumLock, CapsLock und ScrollLock
halt nur aktualisieren, wenn der Status sich ändert
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: TStatusBar fortlaufend und ressourcensparend aktualisier

  Alt 9. Mai 2008, 16:05
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
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TStatusBar fortlaufend und ressourcensparend aktualisier

  Alt 9. Mai 2008, 17:20
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.
Devid
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz