![]() |
Delphi-Version: 5
Dynamic Array Einfache Zuweisung
Hallo,
ich bin auf der Suche nach einem Konstrukt mit dem man Zuweisungen weniger umständlich gestalten kann. Dabei hab ich ![]()
Code:
Stattdessen gibts:
type
TIntArray = array of integer; procedure TForm1.Button1Click(Sender: TObject); var MyArr: TIntArray; begin MyArr := TIntArray.Create(10, 20, 30, 40); end; Zitat:
|
AW: Dynamic Array Einfache Zuweisung
Du deklarierst einen Vektor ('Array of integer') und willst daraus dann eine Matrix (Array of Array of integer) basteln. Das kann doch gar nicht funktionieren:
Delphi-Quellcode:
Wenn Du das einfacher/anders haben willst, dann bau Dir deine Methoden nach deiner Facon.
Var
Vektor : Array of integer; Matrix : Array Of Integer; i : Integer; begin SetLength(Vektor,20); // Der Vektor hat nun 20 Elemente. Vektor[0]..Vektor[19]; SetLength (Matrix,30); // Die Matrix hat nun 30 Zeilen for i:=0 to Length(Matrix) do SetLength(Matrix[i],40); // Jede Zeile hat 40 Spalten Ich würde das sowieso nicht so machen, sondern eine Matrix hinter einem Interface/Klasse kapseln. |
AW: Dynamic Array Einfache Zuweisung
@amoibos: Du benutzt Delphi5? Die Version kann das nicht. Mit meinem XE8 funktioniert es.
|
AW: Dynamic Array Einfache Zuweisung
Zitat:
|
AW: Dynamic Array Einfache Zuweisung
Record Helper, welche in dem Beispiel verwendet werden gab es aber bei D5 noch nicht. Class Helpers gab es ab D2010, record helpers kamen noch später.
|
AW: Dynamic Array Einfache Zuweisung
Komischer Thread.
In der Frage wird nirgends ein Array of Array erwähnt, und Record Helper kommen auch nirgends vor. Von daher verwundern einige Antworten. |
AW: Dynamic Array Einfache Zuweisung
Soweit ich weiß, gibt es diesen Array-Constructor seit D2007. Für alles darunter ist wohl Handarbeit angesagt - oder halt ein Update...
|
AW: Dynamic Array Einfache Zuweisung
Zitat:
Isolde! Du hast wieder den koffeinfreien Kaffee erwischt! |
AW: Dynamic Array Einfache Zuweisung
Mit einer kleinen Hilfsfunktion geht das schon etwas einfacher:
Delphi-Quellcode:
Sollte auch unter Delphi 5 laufen, habe es aber nur mit Delphi 6 getestet.
type
TIntArray = array of integer; function GetIntArray(AIntArr : array of integer):TIntArray; begin setlength(result,length(AIntArr)); move(AIntArr[0],result[0],length(AIntArr)* SizeOf(integer)); end; procedure TForm1.Button1Click(Sender: TObject); var MyArr: TIntArray; begin MyArr := GetIntArray([10, 20, 30, 40]); // ... end; Alternative:
Delphi-Quellcode:
procedure FillIntArray(AIntArr : array of integer;var AMyArr : TIntArray);
begin setlength(AMyArr,length(AIntArr)); move(AIntArr[0],AMyArr[0],length(AIntArr)* SizeOf(integer)); end; procedure TForm1.Button1Click(Sender: TObject); var MyArr: TIntArray; begin FillIntArray([10, 20, 30, 40], MyArr); |
AW: Dynamic Array Einfache Zuweisung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 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