Einzelnen Beitrag anzeigen

willyxv

Registriert seit: 25. Okt 2010
29 Beiträge
 
Delphi XE Enterprise
 
#1

Wie eine Uhr über einen Thread aktualisieren

  Alt 5. Nov 2010, 12:13
Hallo,

in meinem Program wird über einen Timer alle 5 Sekunden über das netzwerk ein Pumpenturm abgerufen. Die Empfangenen Daten werden dann verglichen, in eine sql Datenbank geschrieben und auf verschiedenen Labels und Memos angezeigt.

Nun zu meinem Problem. Es soll eine Uhrangezeigt werden welche die aktuelle Uhrzeit anzeigt. Ich habe versucht dies über einen timer zu verwirklichen, jedoch belibt dieser immer kurz stehen wenn die Netzwerkanfrage raus geht und dies dauert 3 Sekunden. Also springt meine Uhr immer um 3 Sekunden weiter und läuft dann 2 Sekunden wieder und springt wieder weiter. Wie schaffe ich es die Uhr unabhänig von der Datenbankabfrage zum laufen zu brinen?
ich habe das ganze schon über einen Thread versucht aber ich weiß nicht wie ich das Label aktualisiert bekomme. Die Datenbankanfrage kann ich auch nicht auslagern da ich viele Daten direkt per Memo anzeigen lasse.

Hier das Programm wie es bisher läuft:
Delphi-Quellcode:
procedure TForm1.LeseTimerTimer(Sender: TObject);
var g : integer;
begin
    TCPClient.IOHandler.Write(); // Start des Abfragebefehls
    for g := 0 to Pumpenanzahl - 1 do
    BEGin
     Speicher := TCPClient.IOHandler.ReadLn(wert4); // Datenempfang

          // Vergeliche und Ausgaben.

     TCPClient.IOHandler.Write(); // Bestätigung des Empfangs und anforderung der nächseten Pumpe
    END; // die Schleife braucht etwa 3 Sekunden und in dieser Zeit steht die Uhr.
end;

procedure TForm1.ZeitTimerTimer(Sender: TObject);
begin
   Zeit.Caption := datetostr(now) + ' ' + timetostr(now);
end;
Bin für jede Hilfe Dankbar

MfG Willy
  Mit Zitat antworten Zitat