Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Parameter in Event übergeben

  Alt 6. Sep 2013, 12:34
Du meintest schon das richtige.

Die Liste wird Bestandteil Deines Objektes (also Deiner Klasseninstanz).

Es gibt auch die Möglichkeit, Klassenvariablen zu verwenden (z.B. class var GlobalList: TList; ).
Dann würden alle Klasseninstanzen auf die selbe Liste zugreifen können. Sie müsste dann ggf. in einem Klassenconstruktor erzeugt und in einem Klassendestructor aufgelöst werden.

Du willst ja aber offenbar eine Liste in jeder Klasseninstanz.


Nur mal noch zwei kleine Anmerkungen:
Üblich ist als Präfix für private Felder ein F (ich nutze inzwischen meist ein kleines f). Natürlich ist das nicht zwingend, hilft aber möglichen Dritten, Deinen Quelltext besser lesen zu können.
Die Objektliste könntest Du als Nur-Lesen-Property definieren (wenn sie direkt vom Objekt verwaltet wird) oder als Property mit Getter und Setter. Dann könntest Du im Setter erkennen, wenn eine neue Liste zugewiesen wird und gleich ein Neuzeichnen veranlassen.
Delphi-Quellcode:
type
   TDesigner = Class(TObject)
 
    private
       Graphics : IGPGraphics;
       fBrush: IGPBrush;
       fPen: IGPPen;
       fFont : IGPFont;
       fMyObjects : TObjectList<TDesignerObject>; // privat
 
    public
       Destination_PB : TPaintBox;
       procedure Initialize;
       procedure Draw;
       procedure AddObject(objecttype : TDesignerObjectType; x,y,d : integer);
       procedure Dest_PaintMe (Sender : TObject);
       property MyObjects : TObjectList<TDesignerObject> read fMyObjects {write set_MyObjects}; // öffentlich
   end;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat