unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
StaticArray = Array[0..1000] of Double;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DArray: Array of StaticArray;
Length : Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Length:=5;
Setlength(DArray, Length);
end;
end.
Wenn ich versuche Setlänge() zu verwenden, um die Länge des 2DArray zu definieren, gibt es mir keinen Fehler oder nichts.Delphi Verwenden eines 2d-Arrays definiert durch statische Array
Ich erwarte, dass das Ergebnis ein Array mit 1000 Spalten und Länge Anzahl der Zeilen sein wird. Allerdings ist das Ergebnis nur 1 Zeile mit 1001 Spalten.
Irgendeine Idee warum?
Ich brauche das Array auf diese Weise definiert werden, aber ich bin fest, wie man die Länge des Array festlegen.
* Anzahl der Spalten bearbeiten, 0..1000, was zu 1001 Spalten addiert.
* Edit2 Der Code ein wenig mehr behoben.
* Edit3 Hergestellt ein besseres Beispiel
StaticArray hat 1001 Elemente, nicht 1000, FWIW. Und ja, 2DArray ist 2D, 1001 * Länge. Sie haben nicht annähernd genug Code gezeigt, um Ihr Problem zu diagnostizieren. Wir brauchen einen [MCVE]. –
Es funktioniert gut für mich in Delphi Berlin, mit Ausnahme des zusätzlichen Elements, das David erwähnt. Eine 10-Zeilen-Konsolenanwendung, die eine WriteLn der Länge (MyArray) und der Länge (MyArray [10]) ausführt, zeigt, dass sie beide vorhanden sind und über die entsprechenden Werte verfügen. –
Warum postest du nicht zuerst deinen echten Code? Das obige kompiliert nicht. 'Länge' ist nirgendwo deklariert oder zugewiesen, und die Deklaration von' StaticArray' ist ebenfalls falsch. –