ich hatte Freitag Abend eine Idee für ein Lazarusprogrämmchen. Also erst mal Free Pascal Buch studiert.
Ich möchte die Systemzeit auslesen (das geht prima -DecodeTime-), verändern und dann zurückschreiben. Also die Uhr stellen sozusagen.
Hier mein Code:
Code: Alles auswählen
procedure TForm1.ZeitTimer(Sender: TObject);
begin
LabUhr.Caption:=TimeToStr(Time); //Einfach nur die Zeit ineinem Label ausgeben.
end;
Code: Alles auswählen
procedure TForm1.StelleClick(Sender: TObject);
var AHH, AMM, ASS, AMS, NHH, NMM, NSS, NMS: Word;
UhrZeit: TDateTime;
begin
randomize;
DecodeTime(Time,AHH,AMM,ASS,AMS);
NMM:= StrToInt(Minuten.Caption); //Hier werden aus einer Combobox die Minuten erstmal vorgegeben
NSS:= random(9) + ASS; // Hier zu den "alten Sekunden ASS" welche hinzugefügt...
if (NSS>=60) then
begin
NMM:= NMM + 1; //NMM sind "Neue Minuten"
NSS:= NSS - 60;
end;
NMM:= AMM + NMM + random(9);
NHH:= AHH;
if (NMM>=60) then
begin
NHH:= NHH + 1;
NMM:= NMM - 60;
end;
UhrZeit:= EncodeTime(NHH,NMM,NSS,AMS); //Hier wird die Uhrzeit zusammengebaut...
SetLocalTime(UhrZeit); //... und hier wollte ich sie dem System füttern.
end;
SetLocalTime kennt Lazarus scheinbar nicht. Und die Variable "Uhrzeit" müsste hierfür auch vom Typ TSystemTime und nicht TDateTime sein. Aber das könnte man sicherlich umwandeln. Hilft da DateUtils weiter?
Hat vielleicht jemand eine Idee?
Vielen Dank!!!
Gruß
Volker