Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OOP: private Elemente von Untergeordneten Objekten setzen (https://www.delphipraxis.net/122631-oop-private-elemente-von-untergeordneten-objekten-setzen.html)

cmrudolph 19. Okt 2008 18:05


OOP: private Elemente von Untergeordneten Objekten setzen
 
Guten Abend,

ich programmiere noch nicht lange objektorientiert, deshalb mag diese Frage ein wenig dümmlich vorkommen.

Ich habe nun einen Fall erzeugt, in welchem eine Klasse eine Liste von anderen Objekten enthält, dessen privaten Eigenschaften von der übergeordneten Klasse gesetzt werden müssen, nach außen hin aber readonly sein sollen.

Hier einmal ein Beispiel:
Delphi-Quellcode:
  TMy_File = class(TObject)
  private
    FFileID: Cardinal;
    FFileName: String;
    FFileSize: Cardinal;
    FFileStatus: Byte;
  public
    property FileID: Cardinal read FFileID;
    property FileName: String read FFileName;
    property FileSize: Cardinal read FFileSize;
    property FileStatus: Byte read FFileStatus;
    constructor Create();
  end;

  TMy_Bunch = class(TObject)
  private
    FFiles: Array of TMy_File;
    FCount: Integer;
    function getText(): String;
  public
    property Count: Integer read FCount;
    property Text: String read getText;
    constructor Create;
    destructor Destroy; override;
    procedure Delete(Index: Integer);
    procedure Add(const MyFile: TMy_File); overload;
    procedure SetValue(FileID: Cardinal;FieldName: String;Value: String);
    procedure Clear;
    procedure Append(const collection: TMy_Bunch);
  end;
TMy_Bunch ermittelt nun Dateiinformationen, die TMy_File nur sehr umständlich und mit viel Mehraufwand ermitteln könnte. Diese Eigenschaften der Dateien sind jedoch statisch und sollen deshalb readonly sein.
Mein Behelfsmäßiger Ansatz war, einen Konstruktor für das Objekt zu bauen, welcher alle Werte übernommen hat. Das finde ich aber äußerst hässlich.

Gibt es dazu eine elegantere Methode?

mfG

jfheins 19. Okt 2008 18:23

Re: OOP: private Elemente von Untergeordneten Objekten setze
 
In Delphi kannst du auch auf private-Member anderer Klassen zugreifen, solange sie in einer Unit sind ;)

cmrudolph 19. Okt 2008 18:31

Re: OOP: private Elemente von Untergeordneten Objekten setze
 
Ich wusste doch, dass die Frage blöd war ;)
Danke für die schnelle Aufklärung.


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

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