![]() |
'Zugriffsverletzung bei Adresse...' => Fehlermeldung
habe diese Fehlermeldung bekommen und weiss nicht was sie von mir will und wie ich den Fehler wieder beheben kann. kann mir bitte jmd helfen??
hier die meldung: "Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung:'Zugriffsverletzung bei Adresse 004253A0 in Modul 'Project1.exe'. Lesen von Adresse 00000038'. Prozeß wurde angehalten. ..." |
Re: Fehlermeldung?? häh??
Meine Glaskugel sagt mir, dass Du auf ungültigen Speicher zugreifst (Objekte nicht instantiiert o.ä.). Ohne Code kann ich aber auch nur sagen: Häh??
|
Re: Fehlermeldung?? häh??
Ohne nähere Hinweise deinerseits (Code) kann man dir wohl nicht helfen.
Hast du mal den Debugger angeworfen, um den Fehler einzugrenzen? |
Re: Fehlermeldung?? häh??
also hier der quelltext, wenn da [...] steht is es eigtl unwichtig weil
ich an den stellen nur nen feld gefüllt habe:
Delphi-Quellcode:
type
Spieler = record Name : String[20]; SImage : byte; Guthaben : real; Stand : byte; gefae : byte; StrWel : array [0..28] of byte; StrHaeuser: array [0..28, 0..4] of byte; StrMiete : array [0..28, 0..5] of integer; end; [...] private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1 : TForm1; Zaehler: array [0..28] of real; Spiela : array [0..4] of Spieler; k :byte; implementation {$R *.DFM} [...] procedure TForm1.FormCreate(Sender: TObject); var y,x:byte; begin randomize; k:=random(4); y:=55; For x:=1 to 28 do Zaehler[x]:=1; For x:=1 to 4 do begin Spiela[x].stand:=2; Spiela[x].Simage:=y; inc(y); end; For x:=43 to 54 do (Findcomponent('Image'+intToStr(x))as TImage).visible:=false; end; [...] procedure TForm1.BitBtn1Click(Sender: TObject); var i,x,y:byte; begin If k = 5 then k:=1; For x:=43 to 54 do (Findcomponent('Image'+intToStr(x))as TImage).visible:=false; randomize; For i:=1 to 10 do begin x:=random(6)+43; y:=random(6)+49; (Findcomponent('Image'+intToStr(x))as TImage).visible:=true; (Findcomponent('Image'+intToStr(y))as TImage).visible:=true; sleep(100); Application.ProcessMessages; If i <> 10 then begin (Findcomponent('Image'+intToStr(x))as TImage).visible:=false; (Findcomponent('Image'+intToStr(y))as TImage).visible:=false; end; end; HIER KOMMT DER FEHLER IRGENDWO (also hier unten) If Spiela[k].stand = 99 then inc(Spiela[k].gefae); If (((Spiela[k].stand = 99) and ((x-42) = (y-48)))) or (Spiela[k].stand <> 99) or (Spiela[k].gefae = 4)then begin If Spiela[k].stand = 99 then begin Spiela[k].gefae:=0; Spiela[k].stand:=12; end; Spiela[k].stand:=(Spiela[k].stand+(x-42)+(y-48)); If Spiela[k].stand = 42 then Spiela[k].stand:=2; If Spiela[k].stand > 41 then Spiela[k].stand:=(Spiela[k].stand-40); (Findcomponent('Image'+intToStr(Spiela[k].Simage))as TImage).top:=(Findcomponent('Image'+intToStr(Spiela[k].stand))as TImage).top; (Findcomponent('Image'+intToStr(Spiela[k].Simage))as TImage).left:=(Findcomponent('Image'+intToStr(Spiela[k].stand))as TImage).left; If Spiela[k].stand = 32 then begin Spiela[k].stand:=99; (Findcomponent('Image'+intToStr(Spiela[k].Simage))as TImage).top:=(Findcomponent('Image'+intToStr(Spiela[k].stand))as TImage).top; (Findcomponent('Image'+intToStr(Spiela[k].Simage))as TImage).left:=(Findcomponent('Image'+intToStr(Spiela[k].stand))as TImage).left; end; end; inc(k); end; end. |
Re: Fehlermeldung?? häh??
Kannst du eingrenzen, wo der Fehler genau auftritt?
|
Re: Fehlermeldung?? häh??
Und wo kommt der Fehler? Geiz doch nicht so mit Infos :?
|
Re: Fehlermeldung?? häh??
hab ne info in den quelltext gehauen wo ich den fehler vermute
|
Re: Fehlermeldung?? häh??
Dann wirf doch mal den Debugger an.
Welchen Wert hat dann k? besser
Delphi-Quellcode:
If k > 4 then
k:=1; |
Re: Fehlermeldung?? häh??
Vermutet oder sagt Dir das auch der Debugger? Hast schon mal durchgesteppt?
|
Re: Fehlermeldung?? häh??
hallo Bx3 :-) könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben?
Der Fehler kommt wohl bei "TIrgendwas(FindComponent(...)).irgendwas". Weise lieber das Ergebnis von FindComponent erst auf eine Variable zu und prüfe ob diese ungleich nil ist, das Object also auch gefunden wurde. Andere Stellen habe ich im Moment nicht gefunden wo auf ein eventuell nicht instanziertes Object zugegriffen wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 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