![]() |
Zugriffsverletzung bei Inc()
Liste der Anhänge anzeigen (Anzahl: 1)
Bei dieser Procedure bekomme ich eine Zugriffsverletzung (Anhang)
direkt beim Start (Wann auch sonst :wink: ) auftritt. Ich weis nicht was dazu führt ... Normalerweise müsste das doch gehen, oder ?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i,j : Integer; begin for i := 0 to 25 do begin for j := 0 to 31 do begin Spielfeld[Feld] := TSpielfeld.Create(Self); with Spielfeld[Feld] do begin Parent := Form1; Left := i*38 + 20; Top := j*18 + 10; Autosize := true; Cursor := crHandPoint; Hint := ' '; OnClick := Imageladen; OnMouseMove := ShowHint2; Nr := Feld; end; inc(Feld); end; end; end; |
Re: Zugriffsverletzung bei Inc()
Hi!
Was ist denn Feld und was ist Spielfeld? Ciao Frederic |
Re: Zugriffsverletzung bei Inc()
Delphi-Quellcode:
type
TSpielfeld = class(TImage) private Nr : Integer; end; var Spielfeld : Array[0..150] of TSpielfeld; Feld : Integer; |
Re: Zugriffsverletzung bei Inc()
Hi!
Ich denke mal, dass du Feld zuerst mal intialisieren musst. Daran könnte es liegen. Ciao Frederic |
Re: Zugriffsverletzung bei Inc()
Setz mal die Länge des Arrays mit [oh}SetLenght[/oh].
|
Re: Zugriffsverletzung bei Inc()
Mach Feld lokal, dann wird dir auffallen das du Feld nicht am Anfang auf Null setzt.
Warum machst du Spielfeld nicht zweidimensional? |
Re: Zugriffsverletzung bei Inc()
1. Wie soll ich das machen ?
2. Ohne inc(Feld) Funktioniert es ... ich habe dann aber nur Spielfeld[0]'s, was ich nicht will ... |
Re: Zugriffsverletzung bei Inc()
Hi!
Ich würde es so machen:
Delphi-Quellcode:
Ciao Frederic
procedure TForm1.FormCreate(Sender: TObject);
var i,j,feld : Integer; begin feld:=0; for i := 0 to 25 do begin for j := 0 to 31 do begin Spielfeld[Feld] := TSpielfeld.Create(Self); with Spielfeld[Feld] do begin Parent := Form1; Left := i*38 + 20; Top := j*18 + 10; Autosize := true; Cursor := crHandPoint; Hint := ' '; OnClick := Imageladen; OnMouseMove := ShowHint2; Nr := Feld; end; inc(Feld); end; end; end; |
Re: Zugriffsverletzung bei Inc()
@ fkerber : Bei deiner Lösung gibt es die gleiche Meldung :(
Wie muss ich das Array initialisieren ? @ Luckie : Kannst du mir bitte ein Beispiel geben ... ich weis nämlich nicht wie man die Länge eines Arrays setzt. |
Re: Zugriffsverletzung bei Inc()
Hi!
ich vermute mal, dein Array ist zu klein definiert. Probier es mal so:
Delphi-Quellcode:
Ciao Frederic
var
Form1: TForm1; Spielfeld : Array[0..832] of TSpielfeld; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i,j,feld : Integer; begin feld:=0; for i := 0 to 25 do begin for j := 0 to 31 do begin Spielfeld[Feld] := TSpielfeld.Create(Self); with Spielfeld[Feld] do begin Parent := Form1; Left := i*38 + 20; Top := j*18 + 10; Autosize := true; Cursor := crHandPoint; Hint := ' '; OnClick := Imageladen; OnMouseMove := ShowHint2; Nr := Feld; end; inc(Feld); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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