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 folgenden Hinweis gesehen, nur funktioniert der nicht mit meiner Version. Kurzum das soll der Compiler akzeptieren:
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 14:33 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