![]() |
Statische Arrays mit type und Wertzuweisung?
Hallo!
Ich habe in verschiedenen Büchern gelesen, dass man für statische Arrays erst einmal ein type definieren soll. Jetzt habe ich aber ein Problem mit der Zuweisung von Werten! Folgendes habe ich global vereinbart:
Delphi-Quellcode:
Jetzt möchte ich dem Array Werte zuweisen:
type
TMatrix = array[0..5,0..4] of integer; var frmSpielfeld: TfrmSpielfeld; bld : TMatrix;
Delphi-Quellcode:
Es kommt jetzt immer die Fehlermeldung:
procedure TfrmSpielfeld.FormCreate(Sender: TObject);
begin bld:=((,2,2,2,2), (2,1,1,1,2), (2,1,0,1,2), (2,1,0,1,2), (2,1,1,1,2), (2,2,2,2,2)); end;
Code:
Ich weiß, dass ich die Zuweisungen mit bld[0,0] := 2, usw. machen könnte! Das ist mir aber zu viel Code was ich da schreiben müsste!
[Fehler] mSpielfeld.pas(98): ')' erwartet, aber ',' gefunden
[Fataler Fehler] pSpielfeld.dpr(5): Verwendete Unit 'mSpielfeld.pas' kann nicht compiliert werden |
Re: Statische Arrays mit type und Wertzuweisung?
Du kannst es nicht so machen, wie du willst, du musst dich schon nach Delphi richten. Also entweder setzt du jedes Element einzeln zur Laufzeit oder du initialisierst es bei der Deklaration.
PS: Man kann so was auch mit Scheiflen lösen, wenn man nicht so viel tippen will. :wink: |
Re: Statische Arrays mit type und Wertzuweisung?
Erst mal fehlt dort eine Zahl:
Code:
Und dann bin ich mir nicht sicher ob es so geht das komplette Array zuzuweisen, wenn ich es auch in einer Procedure versuche kommt ebenfalls ein Fehler.
[b]procedure[/b] TfrmSpielfeld.FormCreate(Sender: TObject);
[b]begin[/b] bld:=(([color=red]X[/color],2,2,2,2), (2,1,1,1,2), (2,1,0,1,2), (2,1,0,1,2), (2,1,1,1,2), (2,2,2,2,2)); [b]end[/b]; Aber so ging es:
Delphi-Quellcode:
[add]
Type TMatrix = array[0..5, 0..4] of integer;
Var bld: TMatrix = ((0,2,2,2,2), (2,1,1,1,2), (2,1,0,1,2), (2,1,0,1,2), (2,1,1,1,2), (2,2,2,2,2)); Gut dank Luckie hat sich das gelöst. Dann besteht aber noch diese Möglichkeit:
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Type TMatrix = Array[0..5, 0..4] of integer;
Var bld: TMatrix; Procedure TfrmSpielfeld.FormCreate(Sender: TObject); Const bld2: TMatrix = ((0,2,2,2,2), (2,1,1,1,2), (2,1,0,1,2), (2,1,0,1,2), (2,1,1,1,2), (2,2,2,2,2)); Begin bld := bld2; End; ![]() ![]() ![]() |
Re: Statische Arrays mit type und Wertzuweisung?
Mit hilfe einer Funktion kannst du zumindest die Zeilenvektoren füllen:
Delphi-Quellcode:
procedure SetLineVec(var Matrix: TMatrix; Row: Integer; const Values: array of Integer);
var i: Integer; begin for i := 0 to High(Values) do Matrix[Row, i] := Values[i]; end; SetLineVec(Matrix, 0, [2, 2, 2, 2, 2]); SetLineVec(Matrix, 1, [2, 1, 1, 1, 2]); SetLineVec(Matrix, 2, [2, 1, 0, 1, 2]); SetLineVec(Matrix, 3, [2, 1, 0, 1, 2]); SetLineVec(Matrix, 4, [2, 1, 1, 1, 2]); SetLineVec(Matrix, 5, [2, 2, 2, 2, 2]); |
Re: Statische Arrays mit type und Wertzuweisung?
EDIT: Hat sich schon erledigt! DANKE!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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