![]() |
Statusbar/Uhrzeit einblenden
Hiho!
Ich wollte so als Spielerei - und zum Testen - in mein Programm 2 Dinge einbauen: - unten Rechts die aktuelle Uhrzeit - Einen Statusbalken der wahllos durchläuft, ähnlich wie der beim Hochfahren von Windows Jetzt habe ich das versucht über Timer zu regeln, aber das funktioniert nur, wenn mein Hauptprogramm selbst nicht wirklich beschäftigt ist. Sobald ich die eigentliche Verarbeitung anstarte, hängen diese Timer und aktualisieren nur noch, wenn ich im Hauptprogramm selbst ein Update/ProcessMessages mache. Dass ich das Problem via Threading lösen kann ist mir zwar klar, aber sowas "großes" wollte ich eigentlich für solche Spielereien vermeiden. Oder komme ich da gar nich drum herum? cu Patrick |
Re: Statusbar/Uhrzeit einblenden
Wenn deine Anwendung beschäfftigt ist, dann kann eben die Nachrichtenschleife nicht mehr abgearbeitet werden und somit auch keine WM_TIMER Nachrichten verarbeitet werden. Lagere also den Code, der deine Anwendung blockiert in einen Thread aus.
|
Re: Statusbar/Uhrzeit einblenden
Zitat:
|
Re: Statusbar/Uhrzeit einblenden
So kannst du die aktuelle Uhrzeit in deiner Statusleiste einblenden:
Delphi-Quellcode:
Musst nur im OI halt Panels hinzufügen ;)
procedure TForm1.Timer1Timer(Sender: TObject);
begin StatusBar1.Panels[1].Text := TimeToStr(time); end; |
Re: Statusbar/Uhrzeit einblenden
Es gibt noch eine andere Möglichkeit. Dazu brauchst Du die Komponente TJvClock von den Jedi's und eine Statusbar mit mehreren Panels. In diesem Beispiel wird die Uhr ins 3 Panel eingefügt. Diese paar Zeilen in das Ereignis FormShow und schon hast Du Deine aktuelle Uhrzeit in der Statusleiste.
Delphi-Quellcode:
// Die Uhr in das dritte Panel setzen von der Statusbar
Statusbar.Perform(SB_GETRECT, 2, Integer(@R)); Clock.Parent := Statusbar; //Clock adoptieren Clock.Top := r.Top; //Größe der Clock.Left := r.Left; //Clock setzen Clock.Width := r.Right - r.Left; //und an Panel anpassen Clock.Height := r.Bottom - r.Top; |
Re: Statusbar/Uhrzeit einblenden
Zitat:
|
Re: Statusbar/Uhrzeit einblenden
Zitat:
|
Re: Statusbar/Uhrzeit einblenden
Zitat:
Und deshalb war jetzt meine eigentlich Frage, ob ich das Problem auch ohne Threads lösen kann, oder nicht? *G* Aber anscheinend nicht, so wie es aussieht. ^^ |
Re: Statusbar/Uhrzeit einblenden
Hallo Patrick,
hast Du meinen Beitrag #5 hier gelesen und auch mal ausprobiert ? |
Re: Statusbar/Uhrzeit einblenden
Zitat:
Liegt einfach daran, dass ich a) ungern Drittanbietersachen nehme, sondern sie gerne - grade wenns so kleine Sachen sind - selber programmiere und b) da die Uhr nur ein Beispiel für div. andere ähnliche Anwendungsgebiete ist, die ich nacher ma umsetzen möchte. Aber trotzdem Danke! :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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