AGB  ·  Datenschutz  ·  Impressum  







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

Array of Record mit Konstanten füllen

Ein Thema von MarcoZ · begonnen am 26. Aug 2006 · letzter Beitrag vom 26. Aug 2006
 
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Array of Record mit Konstanten füllen

  Alt 26. Aug 2006, 12:24
Jürgens Vorschlag, die Initialisierung per Code durchzuführen, ist insbesondere bei größeren Strukturen sinnvoll. Wichtig ist es dabei, das Schreiben von initialisierten Konstanten in den Compiler-Optionen zu aktivieren. Alternativ kann das Array in den VAR-Bereich verschoben werden. Die Prüfung der Indexberechnung entfällt, wenn der Index in jedem Schritt inkrementiert wird.

Sollen - wie in Marcos Beispiel angegeben - zwei gleiche Karten im Array hintereinander abgelegt werden, kann folgender Code benutzt werden:

Delphi-Quellcode:
var
  Farbe : TKartenfarbe;
  Wert : TKartenWert;
  Index : Integer;
begin
  Index := Low(AlleKarten);
  for Farbe := Low(Farbe) to High(Farbe) do
    for Wert := Low(Wert) to High(Wert) do
      begin
        AlleKarten[Index].Farbe := Farbe;
        AlleKarten[Index].Wert := Wert;
        Inc (Index);
        AlleKarten[Index].Farbe := Farbe;
        AlleKarten[Index].Wert := Wert;
        Inc (Index);
      end;
end;
Jürgen geht davon aus, daß zwei identische Kartenstapel hintereinander im Array abgelegt werden. Dies geht mit folgendem Code:

Delphi-Quellcode:
var
  Stapel : Integer;
  Farbe : TKartenfarbe;
  Wert : TKartenWert;
  Index : Integer;
begin
  Index := Low(AlleKarten);
  for Stapel := 1 to 2 do
    for Farbe := Low(Farbe) to High(Farbe) do
      for Wert := Low(Wert) to High(Wert) do
        begin
          AlleKarten[Index].Farbe := Farbe;
          AlleKarten[Index].Wert := Wert;
          Inc (Index);
        end;
end;
Beim zweiten Code könnte man auf die äußere Schleife verzichten und die Kopie des ersten Stapels durch einen Move-Befehl erzeugen. Die dazu notwendigen Parameter (Zielindex und Umfang der Daten) müssen dann allerdings bei einer Änderung der Sets angepaßt werden.

Gruß Hawkeye
  Mit Zitat antworten Zitat
 


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 10:38 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