![]() |
Array : Record
Hallo Delphi-PRAXIS,
ich brauche ein Array vom Typ Record, ich weiß aber nicht wie ich es richtig schrieben soll... Am Ende möchte ich mit folgendem darauf zugreifen können: Bsp:
Code:
Das heißt ich brauche also einen Record mit
Array [spalte,Zeile].zeichen :=‘A‘;
Array [spalte,zeile].attribut = eigenschaft;
Code:
Probiert habe ich es mit:
Zeichen:char;
Attribut:byte
Delphi-Quellcode:
Das ist von der Syntax her leider nicht wirklich richtig...
type
TBuchstabe = record Zeichen :char; Attribut :byte; end; ... var buchstabe : array of TBuchstabe; ... SetLength(buchstabe,zeile,spalte); buchstabe[1,1].zeichen := 'A'; buchstabe[1,1].attribut:= eigenschaft; Ich hoffe jemand kennt sich etwas besser mit Arrays aus und kann mir helfen... FG Dunkelbunt |
AW: Array : Record
Dein Problem ist das du ein eindimensionales Array hast und es ansprichst als hätte es mehrere dimensionen. Wenn du ein Array von Integern hast greifst du ja auch nicht mit ArrayVariable[zeile][spalte] drauf zu.
|
AW: Array : Record
Delphi-Quellcode:
var
i:Integer a:array of array of TRecord; begin SetLength(a, 10); for i:=Low(a) to High(a) do begin SetLength(a[i], 42); end; end; |
AW: Array : Record
Hallo, :thumb:
Delphi-Quellcode:
:stupid:
buchstabe : array of array of TBuchstabe;
Das war der Fehler... Ich bin mir grad nicht ganz sicher wie ich das mit der Zeilenbelegung zur Ausgabe mache... aber soweit danke! :gruebel: FG Dunkelbunt |
AW: Array : Record
wobei bei "rechteckigen" Arrays auch
Delphi-Quellcode:
geht.
SetLength(a, 10, 42)
|
AW: Array : Record
Sieht ganz danach als ob das ein Screenbuffer ergeben soll.
Dann würde ich doch ein Array fester Grösse anstelle von dyn. Arrays vorschlagen. Das Array würde man mit der max. Grösse deklarieren und falls zur Laufzeit ein etwas kleinerer Buffer benötigt wird den überflüssigen Speicherplatz einfach ignorieren. So programmiert es sich leichter und schneller als mit dyn. Arrays mit 2 Dimensionen.
Delphi-Quellcode:
Wenn man jetzt noch etwas weiterdenkt, dann fällt auf, dass man jetzt 3 Variablen hat die zusammengehören.
type
TBuchstabe = record Zeichen :char; Attribut :byte; end; TScreenBuffer = array[0..79, 0..199] of TBuchstabe; ... var screenbuffer : TScreenBuffer; ScreenbufWidth, ScreenbufHeight : integer; Das würde man in eine Klasse abbilden, zu mal es ja viele Funktion gibt, die mit dem Screenbuffer arbeiten sollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 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