![]() |
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 |
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:
Optional noch ein "Default" Schlüsselwort hinten ran.
property Items[Index: integer]: TLabelObject read GetItem write SetItem;
|
Re: Syntaxproblem beim property
Bitte leg einen Typ zum Array an:
Delphi-Quellcode:
Deine Eigenschaft sollte dann funktionieren.
type
TLabelObjectDynArray = array of TLabelObject;
Delphi-Quellcode:
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.
...
property Labels: TLabelObjectDynArray read fLabels write fLabels; ... Ich tendiere bei solchen Sachen eher zu Collections oder Objectlisten, die übernehmen dann die benötigten Verwaltungssachen. Gruß, |
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. |
Re: Syntaxproblem beim property
@all
ich danke euch für die prompten Antworten. Gruss KH |
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:19 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