Autor Beitrag
The Used
Hält's aus hier
Beiträge: 4

Win XP, Linux
D7 Enterprise
BeitragVerfasst: Di 07.06.05 16:52 
Hey,

habe da folgendes Problem:

Habe eine Klasse TSpieler, THaus und Arrays erstellt, etwa so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
type                    // Klasse für Spieler
  TSpieler = class
    public
    X, Y: Integer;      // Position der Spieler
end;

type                    // Klasse für Spieler- Häuser
  TSpielerHaus = class
    public
    Besetzt: Boolean;   // Zustand der Felder
    X, Y: Integer;      // Position der Felder
end;

.
.
.

RotSpieler, GruenSpieler, BlauSpieler, GelbSpieler: array[1..4] of TSpieler;
RotHaus, GruenHaus, BlauHaus, GelbHaus: array[1..4] of TSpielerHaus;  // Für jedes Team/Farbe vier Häuser erstellen


Anschließend wollte ich, mit Hilfe einer For- Schleife alle Spieler auf ihre jeweiligen Häuser setzen, und zwar so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure Tform1.SpielerInitialisierung;
var i: integer; // Laufvariable
begin
  // Die Spieler auf die Häuser setzen:
  for i := 1 to 4 do
   begin
    BlauSpieler[i].X := BlauHaus[i].X;
    RotSpieler[i].X := RotHaus[i].X;
    GruenSpieler[i].X := GruenHaus[i].X;
    GelbSpieler[i].X := GelbHaus[i].X;

    BlauSpieler[i].Y := BlauHaus[i].y;
    RotSpieler[i].Y := RotHaus[i].Y;
    GruenSpieler[i].Y := GruenHaus[i].Y;
    GelbSpieler[i].Y := GelbHaus[i].Y;
   end;
end;


Dazu muss man sagen, dass ich die X- und Y- Koordinaten Häuser zuvor gesetzt habe.


Was aber folgte war ein Fehler (siehe Anhang)!
Was habe ich falsch gemacht?!
Hoffe ich habe mein Problem verständlich dargestellt, sodass ihr mir antworten könnt!

Wäre froh darüber, wenn ihr bei Unklarheiten fragen würdet!
Danke schonmal für die Hilfe,

The Used

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Einloggen, um Attachments anzusehen!
MisterBum83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 245
Erhaltene Danke: 2

WIN XP
Delphi 6
BeitragVerfasst: Di 07.06.05 16:54 
An welche Stelle tritt die Zugriffsverletzung den genau auf. Debugge mal durch...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 07.06.05 16:56 
Hallo!

Hast Du die Spieler und Häuser mittels TSpieler.Create bzw. TSpielerHause.Create erzeugt?

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
The Used Threadstarter
Hält's aus hier
Beiträge: 4

Win XP, Linux
D7 Enterprise
BeitragVerfasst: Di 07.06.05 17:19 
Also, das Problem entsteht an folgender Stelle:

ausblenden Quelltext
1:
BlauSpieler[i].X := BlauHaus[i].X;					


Das heißt das erste Mal, wenn ich die Eigenschaften der Klasse mit dem Array zuweise...


Das mit Create habe ich nicht berücksichtigt, aber selbst nachdem ich es nachgetragen habe, will es nicht funktionieren...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 07.06.05 17:26 
user profile iconThe Used hat folgendes geschrieben:
Das mit Create habe ich nicht berücksichtigt, aber selbst nachdem ich es nachgetragen habe, will es nicht funktionieren...
Zeige mal her, wie Du das gemacht hast. :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
The Used Threadstarter
Hält's aus hier
Beiträge: 4

Win XP, Linux
D7 Enterprise
BeitragVerfasst: Di 07.06.05 17:28 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
for l:= 1 to 4 do
    begin
      RotSpieler[l].create;
      GruenSpieler[l].create;
      BlauSpieler[l].create;
      Gelbspieler[l].create;

      RotHaus[l].create;
      GruenHaus[l].create;
      BlauHaus[l].create;
      GelbHaus[l].create;
    end;


habe ich in einer Initialisierungs- Prozedur geschrieben.
Belehre mich eines Besseren, wenn ich mich vertan habe :?

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 07.06.05 17:31 
Hallo!

So erzeugt man keine Objekte ;-)

Das geht so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  myHaus : THaus;
begin
  myHaus := THaus.Create;
end;


Hier sei nochmal der obligatorische Hinweis auf meinen Crashkurs Delphi gegeben. :-)

Grüße
Christian

//edit: Oh, und da ich das eben vergessen habe ein nachträgliches :welcome: im DF!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
The Used Threadstarter
Hält's aus hier
Beiträge: 4

Win XP, Linux
D7 Enterprise
BeitragVerfasst: Di 07.06.05 17:32 
Alles klar, danke :wink: