Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Syntaxproblem beim property (https://www.delphipraxis.net/115065-syntaxproblem-beim-property.html)

khh 5. Jun 2008 10:40


Syntaxproblem beim property
 
hallo zusammen,
ich habe eine Klasse von TPersistent abgeleitet.
Da gibt es u.a. die private variable:
fLabels : array of TLabelObject;
TLabelObject ist ebenfalls eine Klasse mit diversen propertys.
ich möchte nun eine public property :
property Labels: array of TLabelOBject read fLabels write fLabels;
anlegen.
Der Compiler bring mir einen Fehler "Unit1.pas(50,22) Error: Type identifier expected"
was mach ich falsch, bzw. wie ist die richtige Syntax.
Danke für eure Info.

Gruss KHH

Muetze1 5. Jun 2008 10:50

Re: Syntaxproblem beim property
 
Du kannst keine Arrays als Property veröffentlichen. Du kannst aber eine Property definieren, welche dir einen indizierten Zugriff auf Elemente ermöglicht:

Delphi-Quellcode:
property Items[Index: integer]: TLabelObject read GetItem write SetItem;
Optional noch ein "Default" Schlüsselwort hinten ran.

Brainshock 5. Jun 2008 10:59

Re: Syntaxproblem beim property
 
Bitte leg einen Typ zum Array an:

Delphi-Quellcode:
type
  TLabelObjectDynArray = array of TLabelObject;
Deine Eigenschaft sollte dann funktionieren.

Delphi-Quellcode:
...
property Labels: TLabelObjectDynArray read fLabels write fLabels;
...
Die Lösung von Muetze1 ist für den Zugiff natürlich besser. Da kann man in GetItem und SetItem z.B. die Bereiche des Arrays kontrollieren.

Ich tendiere bei solchen Sachen eher zu Collections oder Objectlisten, die übernehmen dann die benötigten Verwaltungssachen.

Gruß,

Muetze1 5. Jun 2008 11:06

Re: Syntaxproblem beim property
 
Hinweis: Ein dynmisches Array als Property wird man nicht im Objektinspektor sehen.

Auch muss man beachten, das bei einem Lesezugriff das gesamte Array kopiert wird und die Kopie zurück gegeben wird. Dies allein wäre für mich ein KO Kriterium.

khh 5. Jun 2008 11:32

Re: Syntaxproblem beim property
 
@all
ich danke euch für die prompten Antworten.


Gruss KH

Dunkel 5. Jun 2008 11:36

Re: Syntaxproblem beim property
 
IMHO bietet sich alternativ zu einem Array of Object eine TObjectList an; ist auch wesentlich OOP-konformer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 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