Okay Timer kurz erklärt:
Du willst ein Stück Code regelmäßig ausführen?
1) Zieh dir einen Timer aufs Formular (Name "Timer1" als Beispiel)
2) Setze die Eigenschaft "Interval" auf das Zeitinterval in Millisekunden in dem du deinen Code ausgeführt haben willst. (1000 = 1x pro Sekunde)
3) Wechsel auf das "Ereignisse" Tabsheet des Timers im Objektinpektor und klicke doppelt auf die leere Fläche rechts von "OnTimer".
4)
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
// Hier kommt der Code hin der jede Sekunde ausgeführt werden soll
end;
In deinem Fall also so:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Luxusgueter:=Luxusgueter+Luxusgueterproduktion;
Stein:=Stein+Steinproduktion;
Nahrung:=Nahrung+Nahrungproduktion;
Gold:=Gold+Goldproduktion;
label13.caption:=floattostrf(Stein,fffixed,10,0);
label14.caption:=floattostrf(luxusgueter,fffixed,10,0);
label15.caption:=floattostrf(Nahrung,fffixed,10,0);
label16.caption:=floattostrf(gold,fffixed,10,0);
label17.caption:=inttostr(einwohner);
end;
5) Ein Timer ist standardmäßig angeschaltet, würde also sobald du das Formular bzw. die Anwendung öffnest anfangen den Code auszuführen.
Wenn du das nicht willst stell die Eigenschaft "Enabled" im Objektinspektor erst mal auf false und um den Timer zu aktivieren setzt du dann einfach irgendwo
im Quelltext (also da wo du ihn an/aus schalten willst) Timer1.Enabled := true (oder auch wieder auf false, falls du die Rohstoffproduktion wieder abschalten willst).
HINWEIS: Mach es
NICHT mit dieser Schleife und Application.ProcessMessages! Das ist auf unendlich viele Arten schlecht und falsch!
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."