AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie die Länge einr array eigenschaft checken

Wie die Länge einr array eigenschaft checken

Offene Frage von "schuetzejanett"
Ein Thema von schuetzejanett · begonnen am 1. Jan 2007 · letzter Beitrag vom 1. Jan 2007
Antwort Antwort
schuetzejanett

Registriert seit: 5. Apr 2006
Ort: Fraureuth
62 Beiträge
 
#1

Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 21:56
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
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:00
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 Pred(Length(Arrayname))
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:01
Eim statischer oder dynamischer Array?
Markus Kinzler
  Mit Zitat antworten Zitat
schuetzejanett

Registriert seit: 5. Apr 2006
Ort: Fraureuth
62 Beiträge
 
#4

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:04
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:08
Erzeuge ne weitere Property für den höchsten Eintrag.

Die Größe eine dyn. Array kannst du mit Length() ermittlen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:14
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.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Wie die Länge einr array eigenschaft checken

  Alt 1. Jan 2007, 22:20
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:
type TMyStringArr = array of String;
...
private
  f_points: TMyStringArr;
...
public
  property points: TMyStringArr read f_points write f_points;
Gruß
Mr_G

P.S.: Da war ich wohl zu langsam... Vielleicht hilfts dir trozdem.
Jan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 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