Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thread & normale Objektklasse (https://www.delphipraxis.net/3704-thread-normale-objektklasse.html)

Steffen 26. Mär 2003 13:25


Thread & normale Objektklasse
 
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

Chewie 27. Mär 2003 11:27

Neben der Benutzung von TThread gibt es auch noch die Möglichkeit, Threads direkt durch die WinAPI zu erstellen. Auf http://www.delphi-source.de gibts ein Tutorial dazu.

jbg 27. Mär 2003 12:36

Re: Thread & normale Objektklasse
 
Zitat:

Zitat von Steffen
Constructor Initalisieren;

Bist du dir da sicher, dass du nicht Create verwenden willst?

Steffen 27. Mär 2003 13:09

...Create ist wohl besser...! :)

bin ich gar nicht drüber gestolpert!

Thx!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz