![]() |
Wie die Länge einr array eigenschaft checken
Hallo, habe eine klasse spieler bei der ich die array eigenschaft punkte definiert habe.
Wie kann ich von einer anderen unit aus auf die anzahl der elemente dieser eigenschaft zugreifen um so z.b auf das letzte element zugreifen zu können |
Re: Wie die Länge einr array eigenschaft checken
1. Das Array muss im öffentlichen Teil deiner Klasse liegent (Wenn es zu einer Klasse gehört) (public)
2. Du musst die Unit in der sich das befindet einbinden. EDIT: und das letzte Element findest du, wenn es kein Statisches Array ist und du die Länge ohnehin schon weißt, mit
Delphi-Quellcode:
Pred(Length(Arrayname))
|
Re: Wie die Länge einr array eigenschaft checken
Eim statischer oder dynamischer Array?
|
Re: Wie die Länge einr array eigenschaft checken
deine zwei punkte hab ich ja schon berücksichtigt nur kann ich auf eine arrayeigenschaft ja nur mit a:= punkte[index];
zugreifen und ich weiß nun nicht wie ich auf den aktuellen also höchsten index komme Mkinzler es ist ein dynamischer Array : Hier mal die klassendefinition ohne implementierung vielleicht wird dann deutlicher worauf ich hinaus will es geht mir um die eigenschaften points und fields.
Delphi-Quellcode:
type TPlayer = class(TObject)
private f_name :String; f_stand: integer; f_place: integer; f_fields : array of Tfield; f_points : array of string; procedure setStand(stand : Integer); procedure setName(name : string); procedure SetField(index: integer; const value: TField); procedure setPlace(const Value: Integer); procedure SetPoints(index: integer;const Value: string); function GetPoints(index: integer): string; function GetField(index: integer): TField; public constructor Create(name : String); property name: String read f_Name write setName; //spielername property stand:Integer read f_Stand write setStand; //aktueller punktestand bzw. nächstes Ziel property place:Integer read f_Place write setPlace; property points[index : integer]: string read GetPoints write SetPoints; property field[index : integer]: TField read GetField write SetField; end; |
Re: Wie die Länge einr array eigenschaft checken
Erzeuge ne weitere Property für den höchsten Eintrag.
Die Größe eine dyn. Array kannst du mit Length() ermittlen |
Re: Wie die Länge einr array eigenschaft checken
Arrayeigenschaft ist ein schlechtgewähltes Wort, außerhalb von Borlands OH werden diese Wesen meist als indizierte Eigenschaften bezeichnet. Und es liegt in der Natur der indizierten Eigenschaften, dass sie keine Informationen über die validen Wertebereiche ihrer Parameter enthalten, genauso wie bei jeder Funktion; diese Informationen musst du also seperat, beispielsweise in einer zweiten Property (-> TList.Count), bereitstellen oder aber eben einfach das Array zurückgeben.
|
Re: Wie die Länge einr array eigenschaft checken
Also wenn ich das richtig sehe hast du deine Eigenschaft mit Index definiert, was nach meinem Verständnis dazu führt, dass du die Länge nicht direkt mit Length() abfragen kannst. Solltest du die Indexfunktion (also die Get- und Set-Methoden mit Index) nicht benötigen könntest du in etwa sowas veranstalten:
Delphi-Quellcode:
Gruß
type TMyStringArr = array of String;
... private f_points: TMyStringArr; ... public property points: TMyStringArr read f_points write f_points; Mr_G P.S.: Da war ich wohl zu langsam... :cry: Vielleicht hilfts dir trozdem. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 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