![]() |
String mit TTimer
also habe einen TEdit in dem die ausgelesene zeit eines telefons angezeigt wird z.B. 20:56:26
wie schaffe ich es das diese zeit im Programm weiterläuft sicherlich in einen ttimer |
Re: String mit TTimer
Wie Liest Du denn die Zeit des Telefons aus.
|
Re: String mit TTimer
Delphi-Quellcode:
wobei das datum nicht weiterlaufen muss
s:= 'AT+CCLK?';
SendCMD; Memo1.Lines.Add(Result1); zeit:=Memo1.Lines[33]; datum:=Memo1.Lines[33]; delete(zeit,1,17); delete(zeit,9,15); delete(datum,1,8); delete(datum,9,15); jahr:='20'+datum[1]+datum[2]; monat:=datum[4]+datum[5]; tag:=datum[7]+datum[8]; LabeledEdit1.text:=tag+'.'+monat+'.'+jahr; Edit2.Text:=zeit; |
Re: String mit TTimer
Hallo,
der Timer wird nur zur Aktualisierung der Anzeige gebraucht, die ausgelesene Zeit des cell phone sollte in einer Variable dtRead vom Typ TDateTime gespeichert werden. Für die Berechnung eines eventuellen Versatzes wird beim Auslesen auch die lokale Zeit dtNow (:= Now) gespeichert. Im OnTimer-Event wird dann einfach der Anzeigewert neu berechnet:
Delphi-Quellcode:
Freundliche Grüße
ZeitPanel.Caption := TimeToStr(dtRead + Now - dtNow);
|
Re: String mit TTimer
läuft aber mir fehlen da jetzt 2 stunden und 15 minuten also genau die zeit bis 0 Uhr
Edit dtNow is mir grad nicht so klar ausgabe erfolgt ja so Zitat:
Zitat:
|
Re: String mit TTimer
Hi,
der bei +CCLK zurückgegebene Wert muss von dir interpretiert und als dtRead gespeichert werden. dtNow bekommt den Wert Now zugewiesen, und zwar genau zu dem Zeitpunkt wenn dir CCLK geliefert wird. Der Ausdruck Now - dtNow liefert in OnTimer den Korrekturwert bei abweichenden Zeiten zwischen dem cell phone und dem PC. Gute Nacht |
Re: String mit TTimer
Danke Habs selber hinbekommen den Code zeig ich jetzt nich is bestimmt n ziemliches kuddelmuddel
Also danke nochmal |
Re: String mit TTimer
Nee zu früh gefreut klappt doch nicht es läuft die aktuielle zeit durch
Delphi-Quellcode:
function TForm1.Info: Boolean;
var zeit:string; datum:string; jahr:string; monat:string; tag:string; zeit2:string; stunde:string; minute:string; sekunde:string; versatz:string; begin Progressbar1.Position:=10; Connect1.Tag := 1; StatusBar.Panels[0].text:='Verbunden mit '+ComPort.Text; Connect1.Caption := 'Trennen'; s:= 'AT+CCLK?'; SendCMD; Memo1.Lines.Add(Result1); zeit:=Memo1.Lines[33]; datum:=Memo1.Lines[33]; delete(zeit,1,17); delete(zeit,9,15); delete(zeit2,1,17); delete(zeit2,12,15); delete(datum,1,8); delete(datum,9,15); jahr:='20'+datum[1]+datum[2]; monat:=datum[4]+datum[5]; tag:=datum[7]+datum[8]; LabeledEdit1.text:=tag+'.'+monat+'.'+jahr; dtread:=strtotime(Zeit); Stunde:=zeit[1]+zeit[2]; minute:=zeit[4]+zeit[5]; sekunde:=zeit[7]+zeit[8]; versatz:=zeit[10]+zeit[11]; zeit2:=stunde+':'+minute+':'+inttostr(strtoint(sekunde)+(strtoint(versatz))); dtnow:=strtotime(Zeit2); Progressbar1.Position:=100; memo1.lines.add(zeit2); end;
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
begin Edit2.Text := TimeToStr(dtRead + Now - dtNow); end; vieleicht könnte mir noch jemand nen denkanstoß geben |
Re: String mit TTimer
Hallo,
hier das wesentliche in Kürze:
Delphi-Quellcode:
Lass dich nicht dadurch verwirren, dass ich meine Hilfsvariablen dtRead und dtNow umbenannt habe.
type
TDemoForm = class(TForm) Button: TButton; Edit: TEdit; Clock: TTimer; procedure ClockTimer(Sender: TObject); procedure ButtonClick(Sender: TObject); private dtStart: TDateTime; dtClock: TDateTime; end; var DemoForm: TDemoForm; implementation {$R *.dfm} procedure TDemoForm.ClockTimer(Sender: TObject); begin Caption := TimeToStr(dtClock + Now - dtStart); end; procedure TDemoForm.ButtonClick(Sender: TObject); var i: Integer; begin dtStart := Now; i := Succ(Pos(',', Edit.Text)); dtClock := StrToTime(Copy(Edit.Text, i, 8)); end; Freundliche Grüße |
Re: String mit TTimer
ja jetzt gehts Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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 by Thomas Breitkreuz