Hallo!
Ich habe folgendes Problem:
Ich habe mir folgende Klasse gebastelt...
Delphi-Quellcode:
type
CPopulation = class
Dateiname : String[255]; // Dateiname zum eventuellen speichern
Bezeichnung : String[128]; // Populationstitel
StartColor : TColor; // Anfangsfarbwert einer lebenden Zelle
StartSize : TSpielfeld; // Anfangsspielfeldgrösse (in Feldern)
MaxTime : Cardinal; // Maximale Simulationszyklen (0 = unendlich)
Generation : Cardinal; // Aktueller Geneationszyklus
Constructor Initalisieren; // Entnimmt Werte aus Klssenvariablen und initalistert
Destructor Destroy; override;// Löst die aktuelle Population auf
Procedure CreateBattleField; // Erzeugt Spielfeldelemente
Procedure DeleteBattleField; // Löste die Spielfeldliste auf
Procedure MakeOlder; // Berechnung für einen Zyklus
Function GetItem(const Koordinaten : TSpielfeld) : TData; // Liefert die Daten einer Zelle zurück
Function GetBattleFieldSize : TSpielfeld; // Liefert die Spielfeldmaße
Procedure ChangeItem(const Koordinaten : TSpielfeld); // Ändert einen Zellenstatus
Procedure DropItem(const Koordinaten : TSpielfeld); // Setzt einen Zellenstatus auf "belebt" / Age = 1
Procedure DelItem(const Koordinaten : TSpielfeld); // Setzt einen Zellensttus auf "unbelebt"
Procedure Speichern; // Speichert die aktuelle Population
end;
Nun habe ich das Problem, dass die Prozedur "MakeOlder" ziehmlich rechenintensiv ist...
Ich hatte daran gedacht meine Klasse irgendwie mit einem Thread-Objekt zu verbinden, oder zumindest die Prozedur in einem eigenen Thread ablaufen zu lassen...
Wenn ich nun meine Klasse einfach als Nachfahre von "TThread" deklariere bekommen ich logischer weise Fehler...
Hat jemand eine gute Idee, wie ich das Problem lösen kann?
Es wäre, neben bei gesagt, das schönste, wenn jede dieser Methoden in einem eigenen Thread ablaufen würde... (muss aber nicht)
Gruss,
Steffen