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