Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 'Zugriffsverletzung bei Adresse...' => Fehlermeldung (https://www.delphipraxis.net/111219-zugriffsverletzung-bei-adresse-%3D-fehlermeldung.html)

Bx3 31. Mär 2008 18:04


'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. ..."

DeddyH 31. Mär 2008 18:06

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??

mkinzler 31. Mär 2008 18:06

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?

Bx3 31. Mär 2008 18:17

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.

mkinzler 31. Mär 2008 18:20

Re: Fehlermeldung?? häh??
 
Kannst du eingrenzen, wo der Fehler genau auftritt?

DeddyH 31. Mär 2008 18:20

Re: Fehlermeldung?? häh??
 
Und wo kommt der Fehler? Geiz doch nicht so mit Infos :?

Bx3 31. Mär 2008 18:23

Re: Fehlermeldung?? häh??
 
hab ne info in den quelltext gehauen wo ich den fehler vermute

mkinzler 31. Mär 2008 18:27

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;

Die Muhkuh 31. Mär 2008 18:27

Re: Fehlermeldung?? häh??
 
Vermutet oder sagt Dir das auch der Debugger? Hast schon mal durchgesteppt?

SirThornberry 31. Mär 2008 18:29

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 06:51 Uhr.
Seite 1 von 4  1 23     Letzte »    

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