Thema: Delphi property listener

Einzelnen Beitrag anzeigen

svehei

Registriert seit: 10. Mär 2003
Ort: Bretten
54 Beiträge
 
Delphi 7 Professional
 
#1

property listener

  Alt 24. Mär 2003, 10:47
ich habe da ein problem mit einem eigenen klassen-framework. meine basisklasse habe ich von TObject abgeleitet.

in dieser klasse habe ich properties die wiederrum auf eine eigene klasse hinweisen die von tobjectlist abgeleitet ist und die wiederrum von eigenen objekttypen gefuellt wird.

Delphi-Quellcode:

  TMyObjekt= class(TObject)
  private
    ...
    FValue: String;
    function getValue: String;
    procedure setValue(value: String);
    ...
  protected
  public
    ...
    property Value: String read getValue write setValue;
    ...
  end;

  TMyList = class(TObjectList)
  private
  protected
    flist: TObjectList;
    function GetItems(index: integer): TMyObjekt;
    ...
  public
    ...
    function Add(Item: TMyObjekt): integer;
    function Count: integer;
    procedure Delete(index: integer);
    property Items[index: integer]: TMyObjekt read GetItems; default;
    ...
  end;
  
  Tklasse = class(TMeinObject)
  private
    { Private declarations }
    ...
    FMeineListe: TMyList;
    function getMeineListe: TMyList;
    procedure setMeineListe(MyList: TMyList);
    ...
  protected
    { Protected declarations }
  public
    { Public declarations }
    ...
    property MeineListe: TMyList read getMeineListe write setMeineListe;
    ...
  end;
wenn ich nun aus meiner application der liste ein objekt hinzufuegen moechte
FKlasse.MeineListe.Add(MeinObjekt); dann bekomme ich nen fehler - sowit ist's logisch, ich muss die Liste erst erzeugen, bevor ich ihr was hinzufuegen kann.

jetzt kommt aber mein problem: es waere ganz einfach, wenn ich im constructor von TKlasse TMyList erzeugen wuerde. In diesem Fall wuerde aber bei jeder erzeugung von TKlasse TMyList angelegt, auch wenn TMyList kein Objekt hinzugefuegt wird -> ist von mir nicht erwuenscht.

Was ich also suche ist eine Art "property listener". wenn also die property MeineListe von irgendwoher benutzt wird (z.B. via Add) soll TKlasse das bemerken und die Liste erzeugen. gibts sowas schon oder hat vielleicht jemand eine idee wie ich das prob loesen kann.

im voraus schonmal vielen liebsten dank

sven
  Mit Zitat antworten Zitat