Autor Beitrag
LuGo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 06.02.10 13:02 
Ich habe folgendes kleine Programm geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var Zeit: String; Datetime: TDatetime; Timer: TTimer;

procedure Button1.Click
begin
Timer1.OnTimer(DateTime);
Zeit := TimetoStr(DateTime);
Label1.Caption := Zeit;
end;


Da kam eine Fehlmeldung und ein Fenster mit dem Titel CPU öffnete sich.
Nun meine Frage: Ist irgendwas am PC kaputtgegangen und was habe ich falschgemacht?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 06.02.10 13:52 
Ja, da wird wohl was am Mainboard durchgebrannt sein, das passiert schonmal, wenn man mit Delphi Mist programmiert. :mrgreen:

Ne, im Ernst: Was soll denn diese Zeile machen?

ausblenden Delphi-Quelltext
1:
Timer1.OnTimer(DateTime);					


OnTimer dürfte das OnTimer-Event des Timers sein, aber warum übergibst du dem ein TDateTime?

_________________
We are, we were and will not be.
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: Sa 06.02.10 13:59 
Also wenn ich das richtig interpretiere, möchtest Du, das label 1 die Uhrzeit Anzeigt, oder?

Ein Timer dafür nicht geeignet, da dieser alle X-Zeitintervalle (Einstellbar bei Intervall) ein Ereigniss ausführt.

Für Deinen Zweck wäre folgendes Richtig:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure Button1.Click
var Zeit:String
begin
 Zeit:=TimetoStr(now);
 Label1.Caption := zeit
end;


oder Einfacher, wenn du die Variable nicht brauchst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure Button1.Click
begin
 Label1.Caption := TimetoStr(now);
end;
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Sa 06.02.10 15:19 
Dann wird die Uhrzeit aber nicht aktualisiert.
Der Timer ist also schon richtig.
Wenn es sich um ein VCL-Projekt handelt, kannst du den Timer einfach auf die Form ziehen, dann doppelklicken und folgendes schreiben:
ausblenden Delphi-Quelltext
1:
label1.caption := tinetostr(now)					


Dann noch den Timer auf 250ms stellen.
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: Sa 06.02.10 15:26 
user profile iconBoldar hat folgendes geschrieben Zum zitierten Posting springen:
Dann wird die Uhrzeit aber nicht aktualisiert.


Stimmt, aber ich hatte das so interpetriert, das er die Zeit des Button-Clicks auf dem Label haben möchte.

Wenn er immer die Aktuelle Uhrzeit angezeigt haben will, ist der Timer wiederum richtig.