AGB  ·  Datenschutz  ·  Impressum  







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

EAccessViolation Fehler

Ein Thema von Tempest08 · begonnen am 22. Jun 2008 · letzter Beitrag vom 22. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Tempest08

Registriert seit: 20. Jun 2008
12 Beiträge
 
#1

EAccessViolation Fehler

  Alt 22. Jun 2008, 19:59
Delphi-Quellcode:
TZeiger =^TSportler;
  TSportler = record
                name : string[50];
                zeit : real;
                next : TZeiger;
              end;

var
  Form1: TForm1;
  ExDatei: file of TSportler;
  gespeichert: boolean;
  Sportler, Schnellster, vor: TZeiger;
  Anzahl, y: integer;

implementation

uses Unit2;

{$R *.dfm}


procedure TForm1.FormActivate(Sender: TObject);
var n: integer;
begin
  vor:= nil;
  schnellster:= nil;
  gespeichert:= false;
  with StringGrid1 do begin
    ColCount:= 3;
    RowCount:= 31;
    Cells[1, 0]:= 'Name';
    Cells[2, 0]:= 'Zeit';
  end;
  for n:= 1 to 30 do StringGrid1.Cells[0, n]:= IntToStr(n);
end;


procedure TForm1.Einfuegen1Click(Sender: TObject);
begin
  form2.visible:= true;
end;


procedure TForm1.Ausgeben;
var yPos: integer;
begin
  for yPos:= 1 to 30 do begin
    StringGrid1.Cells[1, yPos]:= '';
    StringGrid1.Cells[2, yPos]:= '';
  end;
  sportler:= schnellster;
  ypos:= 1;
  while sportler <> nil do begin
    StringGrid1.Cells[1, yPos]:= sportler^.name;
    StringGrid1.Cells[2, yPos]:= FloatToStr(sportler^.zeit);
    sportler:= sportler^.next;
    ypos:= ypos+1;
  end;
end;

   
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  y:= ARow;
end;


procedure TForm1.Loeschen1Click(Sender: TObject);
var handle: string[50];
    time: real;
begin
  handle:= StringGrid1.Cells[1, y];
  time:= StrToFloat(StringGrid1.Cells[2, y]);
  sportler:= schnellster;
  while (handle <> sportler^.name) and (sportler^.zeit <> time)
    do begin
      vor:= sportler;
      sportler:= sportler^.next;
    end;
  vor^.next:= sportler^.next;
  dispose(sportler);
  ausgeben;
end;


// neues Formular

procedure TForm2.EinfuegenClick(Sender: TObject);
var neu: TZeiger;
begin
  new(neu);
  neu^.name:= NameEd.Text;
  neu^.zeit:= StrToFloat(ZeitEd.Text);
  if schnellster = nil
    then schnellster:= neu
    else begin
      neu^.next:= schnellster;
      schnellster:= neu;
    end;
  gespeichert:= false;
  form1.ausgeben; // an dieser Stelle tritt bei Betätigung dieses Knopfes ein EAccessViolation-Fehler auf
  form2.visible:= false;
end;
Hat jemand eine Idee wo der Fehler sein könnte???
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:01
wie lautet die genaue Fehlermeldung? vor allem die Adressen der AccessViolation sind wichtig.
Ich würde auf anhieb sagen das Form1 nicht erzeugt wurde zu dem Zeitpunkt wo darauf zugegriffen wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Tempest08

Registriert seit: 20. Jun 2008
12 Beiträge
 
#3

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:04
'Zugriffsverletzung bei Adresse 004044BE in Modul Project1.exe. Lesen von Adresse 02746665'
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:11
Setz mal einen Breakpoint(F5) auf die Zeile, und debug von da aus (F7). Der Fehler tritt wahrscheinlich in der Prozedur TForm1.Ausgeben auf.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Tempest08

Registriert seit: 20. Jun 2008
12 Beiträge
 
#5

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:22
''Datei nicht gefunden "SysConst.pas"'' ??
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:23
Von was redest Du?
  Mit Zitat antworten Zitat
Tempest08

Registriert seit: 20. Jun 2008
12 Beiträge
 
#7

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:24
Wenn ich die Zeile "form1.ausgeben" mit F5 markiere und dann mit F7 debugge erscheint nach zweimaligem Betätigen von F7 oben genannte Fehlermeldung
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:28
Wie sieht die Methode "ausgeben" von TForm1 aus? und wenn du einen Haltepunkt auf die erste Anweisung von "ausgeben" setzt, wird dieser erreicht oder kommt die Zugriffsverletzung vorher?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Tempest08

Registriert seit: 20. Jun 2008
12 Beiträge
 
#9

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:34
Was meinst du mit Methode???

Wenn ich F7 drücke nachdem ich die erste Zeile von ausgeben markiert habe, erscheint im Anhang zu findendes Fenster
Miniaturansicht angehängter Grafiken
unbenannt_119.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: EAccessViolation Fehler

  Alt 22. Jun 2008, 20:36
Du musst das Projekt starten... Wird die markierte Stelle im Code bei der Ausführung erreicht, hält das Programm an und du hast wieder den Code vor dir. Von da an kannst du mit F7 Schritt für Schritt durch den Code gehn, das heißt jede Zeile einzeln und nacheinander ausführen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:01 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