AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array : Record

Ein Thema von Dunkelbunt27 · begonnen am 17. Feb 2011 · letzter Beitrag vom 18. Feb 2011
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Array : Record

  Alt 17. Feb 2011, 19:19
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:
Array [spalte,Zeile].zeichen :=‘A‘;
Array [spalte,zeile].attribut = eigenschaft;
Das heißt ich brauche also einen Record mit
Code:
Zeichen:char;
Attribut:byte
Probiert habe ich es mit:
Delphi-Quellcode:
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;
Das ist von der Syntax her leider nicht wirklich richtig...

Ich hoffe jemand kennt sich etwas besser mit Arrays aus und kann mir helfen...

FG Dunkelbunt

Geändert von Dunkelbunt27 (17. Feb 2011 um 19:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Array : Record

  Alt 17. Feb 2011, 19:21
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Array : Record

  Alt 17. Feb 2011, 19:24
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;
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#4

AW: Array : Record

  Alt 17. Feb 2011, 19:27
Hallo,
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!


FG Dunkelbunt
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Array : Record

  Alt 17. Feb 2011, 22:46
wobei bei "rechteckigen" Arrays auch
SetLength(a, 10, 42) geht.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Array : Record

  Alt 18. Feb 2011, 01:00
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:
type
TBuchstabe = record
    Zeichen :char;
    Attribut :byte;
end;

TScreenBuffer = array[0..79, 0..199] of TBuchstabe;
...

var
  screenbuffer : TScreenBuffer;
  ScreenbufWidth, ScreenbufHeight : integer;
Wenn man jetzt noch etwas weiterdenkt, dann fällt auf, dass man jetzt 3 Variablen hat die zusammengehören.
Das würde man in eine Klasse abbilden, zu mal es ja viele Funktion gibt, die mit dem Screenbuffer arbeiten sollen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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