![]() |
AW: Dynamisches Array
Also with ... do tut auch mit Objekten, aber das hättest du auch durch probieren rausfinden können.
und wenn du aus record einfach class machst, dann sollte sich an deinem Code mit dem with ... do auch nichts ändern. [OT] Eigentlich Schade, dass ein so schönes Programmierkonstrukt wie with ... do in kaum einer anderen Sprache existiert. [/OT] |
AW: Dynamisches Array
Es ist aber auch eines der gefährlichsten Konstrukte
|
AW: Dynamisches Array
Ich HABS ausporbiert... und es kam ein Fehler deswegen fragte ich ja.
Zugriffsverletzung auf Speicher kam dann..
Delphi-Quellcode:
Mit Record klappts übrigens wunderbar (zumindestens das with do)
type
TKarte = class KartenName : string[12]; //Sieben, Acht, Neun, Zehn, Bube, Dame, König, Ass KartenWert : Byte; //zur Bestimmung des Indexes beim Array KartenZiffer : Byte; //Zur Namens - Bildauflösung B=11, D=12 K=13 Ass=1 KartenTyp : Byte; //Karo (1), Herz(2), Pik(3), Kreuz(4) end; with Karte do begin KartenName:= 'Karo Zwei'; KartenWert:=1; KartenTyp:=1; KartenZiffer:=2; end; |
AW: Dynamisches Array
Klassen (besser gesagt: Klasseninstanzen) muss man ja auch erst erzeugen.
|
AW: Dynamisches Array
Das heißt ich muss nur einmal Karte.create aufrufen?
|
AW: Dynamisches Array
Nein
Delphi-Quellcode:
Karte := TKarte.Create;
|
AW: Dynamisches Array
Einmal für jede Karte, die Du der Liste hinzufügen willst, ja.
|
AW: Dynamisches Array
Hey danke! Das klappt.. das werd ich jetzt mal probieren!
@DeddyH Ich benutz immer dieselbe Variable "Karte".. also ich überschreib nur die Werte dieser.. von daher also nur einmal create :) |
AW: Dynamisches Array
Wenn es nur eine Karte ist, wozu dann das Array/die Liste?
|
AW: Dynamisches Array
Es ist nicht nur eine Karte oO? Ich benutzte nur die eine Variable für alle Karten.. bei 52 Karten müsste ich ja sonst 52x Karte anlegen..
Ich hab jetzt mal probeweise zu der Objectlist 2 karten hinzugefügt.. hat auch geklappt
Delphi-Quellcode:
Aber nachdem ich das Programm geschlossen habe, kommt nen Fehler
ObjectList.Add(Player[i].HandKarte[1]);
ObjectList.Add(Player[i].HandKarte[2]);
Delphi-Quellcode:
Zugriffsverletzung bei der Adresse 000000000 ... ich dachte das Freigeben muss man machen?
procedure TForm1.FormDestroy(Sender: TObject);
begin ObjectList.free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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 by Thomas Breitkreuz