![]() |
Uhrzeit unabhängig von Systemzeit laufen lassen
Hallo!
folgendes problem: die uhrzeit auf den schulrechnern ist dauernd falsch, ich habe aber keine rechte die uhr zu ändern. deshalb möchte ich ein kleines progie coden, welches die aktuelle zeit aus dem netz holt und dann in einem label die "aktuelle" zeit weiterlaufen lässt, ohne jede sekunde wieder die zeit aus dem netz zu holen... die zeit aus dem netz zu laden ist kein problem. angenommen, ich hole mir die aktuelle internetzeit mit der IdTime komponente. wie stelle ich es jetzt an, das von dieser zeit, diese in dem label weiterläuft? Gruß, dopeline |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
Lass doch ein Timer (TTimer) laufen, der in einem 1 Sek. Intervall eine Sekunde auf die geholte Zeit draufrechnet und das Ergebnis anzeigt.
Wäre das was? |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
das mit dem Timer wird sehr ungenau.....
verwende die Differenz zwischen der Systemzeit und der "wirklichen" Zeit aus dem Internet:
Code:
Ti Zeit aus dem Internet
Ts Systemzeit Td Differenz Einmal ausführen: Td = Ts - Ti in Label dies anzeigen: (Ts - Td) |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
der Timer ist aber ziemlich ungenau ... nimm lieber den SuperTimer (gibt es aber glaube ich nur bis Delphi 4)!
|
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
Was ist ein SuperTimer? :shock: Brauch ich dazu 5 Gramm Kryptonit um ihn zu betreiben oder läuft der auch so? :mrgreen:
|
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
@ Basilikum
danke für den tip! aber irgendwie bekomme ich das nicht umgesetzt... nehm ich da einen timer? kann das vielleicht jemand in ein codebeispiel packen? das wär sehr nett... Gruß, dopeline |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
Es klappt!
Delphi-Quellcode:
var Ti,Ts,Td:TDateTime;
procedure TForm1.AktualisierenClick(Sender: TObject); begin IdTime1.Host:='ntps1-0.cs.tu-berlin.de'; Ti:=IdTime1.DateTime; IdTime1.Disconnect; Td := Ts - Ti; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Ts:=now; Label1.Caption:=TimeToStr(Ts - Td); end; Gruß, dopeline |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
ich kenne die Indys nicht, deshalb wird der Code eher symbolisch:
im Form:
Delphi-Quellcode:
bei Programmstart:
[..]
Private _TimeDelta : TDateTime; [..]
Delphi-Quellcode:
im Timer zur Aktualisierung des Labels:
[..]
Var InternetTime : TDateTime; [..] Begin [..] InternetTime:={Indy-Get-Time} _TimeDelta:=Now() - InternetTime; [..]
Delphi-Quellcode:
[..]
MyLabel.Caption:=TimeToStr(Now() - _TimeDelta); [..] |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
ca. so:
Delphi-Quellcode:
(echtzeit-geproggt, kein gewehr ;) )
procedure timer1.ontimer(self); //intervall = 1000 ms
var Systemzeit, InetZeit, Differenz : TTime; begin Internetzeit := Zeit_aus_Internet; Differenz := Systemzeit - Internetzeit; Label1.caption := TimeToStr(Systemzeit - Differenz); end MfG Lefko //Edith: ok, gleich drei lösungen..... :roll: |
Re: Uhrzeit unabhängig von Systemzeit laufen lassen
Vielen Dank für eure Hilfe!!!
Gruß, dopeline PS: kann mir jemand vielleicht noch kurz ne auskunft geben? mein form hat den borderstyle bsNone und es ist gerade mal so groß, wie das label mit der zeit + einen button. sprich, die caption-leiste ich nicht sichtbar. wie kann ich durch klicken und ziehen des labels das fenster verschieben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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