![]() |
Array definition
hi @ all DP´ler
Wie kann ich einen array vordefinieren ? Ich hab mal folgendes erstellt.
Delphi-Quellcode:
Wie kann ich jetzt den Array EventStore so definieren, das er die Länge von der TechnikerAnz hat.
type
Workingtable = class(Tobject) TechnikerAnz : integer; MaxMorning : integer; MaxAfternoon : integer; MaxNight : integer; EventStore : array of array of string; private end; Weiters möchte ich das die Integerfelder einen Startwert haben ca so.
Delphi-Quellcode:
TechnikerAnz : integer = 4;
lg Bundy |
Re: Array definition
Startwerte können im Konstruktor zugewiesen werden.
Ich würde die Eigenschaften als private-Attribute anlegen und über properties darauf zugreifen lassen. Der Schreib-Zugriff sollte dann bei TechnikerAnz nicht direkt erfolgen, sondern durch eine Set-Prozedur. In der kannst du dann nämlich gleichzeitig die Länge des Arrays ändern. |
Re: Array definition
dir ist Klar das du ein 2 Dim Array definiert hast ?
Delphi-Quellcode:
Constructor Workingtable.create;
begin TechnikerAnz := 4; //setlength(EventStore ,TechnikerAnz ); // Für ein 1 dim array setlength(EventStore ,TechnikerAnz,TechnikerAnz ); // Für ein 2 dim array end; |
Re: Array definition
danke für eure Tips !
Soll auch ein 2Dim Array werden
Delphi-Quellcode:
aber jetzt hab ich noch ne frage, der Wert TechnikerAnz, wird zur laufzeit geändert, sowie die andern Integer Werte, wo kann ich dann die neue Array definition zuweisen.
constructor TWorkingtable.Create;
begin TechnikerAnz := 4; MaxMorning := 4; MaxAfternoon := 4; MaxNight := 4; SetLength(MorningStore,TechnikerAnz,MaxMorning+MaxAfternoon+MaxNight); end; lg Bundy |
Re: Array definition
Man kann die Größe eines dyn. Arrays jederzeit mit setLength verändern (sowohl vergrößern wie auch verkleinern.)
|
Re: Array definition
ah danke :thumb:
|
Re: Array definition
HI back again.
ich hab nun folgendens
Delphi-Quellcode:
wo muss ich nun den Array DayStore definieren der solle ein DayStore: Array of String sein.type TWorkingtable = class(Tobject) TechnikerAnz : integer; MaxMorning : integer; MaxAfternoon : integer; MaxNight : integer; TechnikerStore: array of DayStore; //<<<------------ public constructor Create; private end; lg Bundy |
Re: Array definition
Bevor du ihn verwendest.
|
Re: Array definition
Delphi-Quellcode:
type
TWorkingtable = class(Tobject) TechnikerAnz : integer; MaxMorning : integer; MaxAfternoon : integer; MaxNight : integer; DayStore : Array of String //<<--------------- Wenn ich ihn hier def. kann ich eine Zeile darunter nicht darauf zugreifen TechnikerStore: array of DayStore; //<<<------------ public constructor Create; private end; |
Re: Array definition
ein Array of kann auch nur von einem Typ sein. Du versuchst ein Array von einem Variablennamen zu bauen.
Es gibt also:
Delphi-Quellcode:
aber es gibt nicht:
Array of String;
Array of Integer; Array of Byte; Array of BeliebigerTyp;
Delphi-Quellcode:
meineVariable: Integer;
Array of meineVariable; |
Re: Array definition
das würde bedeuten ich müsste das so machen
Delphi-Quellcode:
type Daystore = array of string end; type TWorkingtable = class Test:Array of DayStore; public constructor Create ; end; |
Re: Array definition
Eher so:
Delphi-Quellcode:
type
Daystore = array of string; TWorkingtable = class Test:Array of DayStore; public constructor Create ; end; |
Re: Array definition
wieso kann ich dann im
Delphi-Quellcode:
nicht auf DayStore zugreifen, es steht mir bei setlength nich zu Verfügung.
constructor TWorkingtable.Create;
begin SetLength(DayStore,2); //<----- end; lg Bundy |
Re: Array definition
Weil der Member Test heißt ;-)
|
Re: Array definition
Mit SetLength nimmt man keine Änderung an einem Typen vor (Typen sind nach der Definition nicht mehr umdefinierbar), sondern an einer Variablen.
|
Re: Array definition
ahhhh jetzt hab ich es geschnallt :thumb:
das Sieht dann so aus
Delphi-Quellcode:
type
MyStore = Array of String; TWorkingtable = class DayStore : MyStore; Test:Array of DayStore; public constructor Create ; end; implementation constructor TWorkingtable.Create; begin SetLength(DayStore,2); end; |
Re: Array definition
Nenene. Nicht array of <Variablenname> sondern array of <Typbezeichner>
|
Re: Array definition
könntest du mir mit einen Code Sample aushelfen :wall:
|
Re: Array definition
Delphi-Quellcode:
type
TIntArray = array of Integer; TMyClass = class private procedure SetSpaltenAnzahl(Anz: Integer); FTestArray: array of TIntArray; // 2D-Array. Entspricht array of array of Integer FSpaltenAnzahl: Integer; FZeilenAnzahl: Integer; public constructor Create; property SpaltenAnzahl: Integer read FSpaltenAnzahl write SetSpaltenAnzahl; end; implementation constructor TMyClass.Create; begin inherited Create; FSpaltenAnzahl := 5; FZeilenAnzahl := 2; SetLength(FTestArray, 5, 2); end; procedure TMyClass.SetSpaltenAnzahl(Anz: Integer); begin FSpaltenAnzahl := Anz; SetLength(FTestArray, Anz, FZeilenAnzahl); end; |
Re: Array definition
danke dir :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 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