AGB  ·  Datenschutz  ·  Impressum  







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

Zugriffsverletzung??

Ein Thema von Michelle · begonnen am 23. Apr 2011 · letzter Beitrag vom 26. Apr 2011
Antwort Antwort
Seite 1 von 3  1 23      
Michelle

Registriert seit: 18. Dez 2010
21 Beiträge
 
Delphi 7 Professional
 
#1

Zugriffsverletzung??

  Alt 23. Apr 2011, 19:01
Hallo!

Ich habe ein Problem. Ich programmiere gerade ein Spiel, in dem eine Spielfigur Sterne einsammeln muss. Für die Sterne habe ich eine Klasse aufgemacht: TStar.

Code:
TStar = class
  Found : Boolean;
  PosX, PosY : integer;
  procedure Shine;

...

var
  Star : Array[1..20] of TStar; //es gibt in jedem Level 20 Sterne
Wenn das Level lädt möchte ich jedem Stern seine Position zuweisen (PosX und PosY), die im Memo-Feld MemoLoadPos steht.

Code:
Star[1].PosX := StrToInt(MemoLoadPos.Lines[2]);
Star[1].PosY := StrToInt(MemoLoadPos.Lines[3]);
Delphi sagt, das sei eine Zugriffsverletzung, aber ich bin mir nicht bewusst, irgendjemanden verletzt zu haben.

Vielen Dank im Voraus für eure Antworten! Ich hoffe, die Frage ist nicht zu dämlich, aber ich habe echt keine Ahnung!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:04
Wieviel Zeilen hat das Memo? (.Lines ist 0-indiziert)
Markus Kinzler
  Mit Zitat antworten Zitat
Michelle

Registriert seit: 18. Dez 2010
21 Beiträge
 
Delphi 7 Professional
 
#3

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:07
Das Memo-Feld hat 22 Zeilen. Vorher lade ich eine txt-Datei in das Memo-Feld, in dem die Positionen der Spielfigur und der Sterne stehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:10
Hast du die Instanzen der Klasse auch erzeugt?

Star[1] := TStar.Create;
Markus Kinzler
  Mit Zitat antworten Zitat
Michelle

Registriert seit: 18. Dez 2010
21 Beiträge
 
Delphi 7 Professional
 
#5

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:19
Das habe ich auch schon versucht. Ich rufe die Prozedure StarCreate in FormCreate auf
Ich habe eine Prozedur "FormCreate", während der ich die Prozedur StarCreate aufrufe. (In StarCreate macht er die Instanzen

Code:
procedure TFormLvl.StarCreate;
var i : integer;
begin
  for i := 1 to 20 do Star[i].Create;
  Star[1].PosX := ... //wie oben beschrieben

  ImgStar1.Left := Star[1].PosX;
  ImgStag1.Top := Star[1].PosY;
end;

Wie gesagt rufe ich die Prozedur in procedure FormCreate auf. Das macht er auch alles, aber die nächste ZEile im FormCreate wird als Fehler angezeigt. Dabei ist es egal, welche Zeile als nächstes im FormCreate steht. Delphi meldet immer noch eine Zugriffsverletzung und die nächste Zeile wird blau hinterlegt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:22
Füge mal begin..end ein
Delphi-Quellcode:
for i := 1 to 20 do Star[i].Create;
begin
  Star[1].PosX := ... //wie oben beschrieben

  ImgStar1.Left := Star[1].PosX
  ImgStag1.Top := Star[1].PosY;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Michelle

Registriert seit: 18. Dez 2010
21 Beiträge
 
Delphi 7 Professional
 
#7

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:29
Aber ich will doch nur das Star[i].Create 20 mal wiederholen. Das andere tipp ich 20 mal ein, weil ich ja jedes einzelne Bild verschieben will und ich keinen Array of Image habe sondern nur 20 einzelne Bilder ImgStar1, ImgStar2, ... Außerdem verwirrt mich diese komische Zugriffsverletzung. Delphi hat irgendein Problem mit meinem TStar bzw. den Instanzen Star[i]. Ich habe schon viel mit denen probiert aber immer gab es eine Zugriffsverletzung. Habe ich vielleicht im Aufbau etwas falsch gemacht oder muss man bei dem Create irgendetwas beachten?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:32
Ist das Memo zu dieser Zeit schon gefüllt?
Markus Kinzler
  Mit Zitat antworten Zitat
Michelle

Registriert seit: 18. Dez 2010
21 Beiträge
 
Delphi 7 Professional
 
#9

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:36
Ja, ist es. Zu dem Zeitpunkt stehen 22 verschiedene ganzzahlige Werte im MemoFeld.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Zugriffsverletzung??

  Alt 23. Apr 2011, 19:38
Poste mal den ganzen Quelltext
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20:42 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