Einzelnen Beitrag anzeigen

Steffen

Registriert seit: 19. Mär 2003
Ort: Hamburg
111 Beiträge
 
Delphi 7 Enterprise
 
#1

Thread & normale Objektklasse

  Alt 26. Mär 2003, 14:25
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
  Mit Zitat antworten Zitat