AGB  ·  Datenschutz  ·  Impressum  







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

Access Violation bei TStack.Count

Ein Thema von Ultimator · begonnen am 28. Nov 2005 · letzter Beitrag vom 28. Nov 2005
Antwort Antwort
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#1

Access Violation bei TStack.Count

  Alt 28. Nov 2005, 14:10
Grüßt euch^^

Ich hab wiedermal ein Problem, diesmal bei der TStack-Klasse.
Ich habe folgenden Quelltext:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var i, stackcount: Integer;
  termStr: string;
  temp: ^string;
begin
  stackcount := TokenStack.Count;
  for i := StackCount downto 1 do
   begin
    temp := TokenStack.Pop;
    termStr := temp^ + TermStr;
   end;
  Memo1.Lines.Add(Edit1.Text + ' = ' + termStr);
end;
Ich hab einen Stack mit Tokens angelegt, und rechne bisher Zwischenergebnisse aus (andere Prozedur, soll jetz nur ne Erklärung sein *g*)
Mit obigem Quelltext möchte ich mir in einem String anzeigen lassen, welche Elemente sich auf meinem Stack befinden, und zwar in der richtigen Reihenfolge.
Dazu nehm ich eben in einer Schleife (zählt von der Anzahl der Stackelemente runter bis zu 1) alle Stackelemente der Reihe nach vom Stack runter und sichere sie in einem String. Der Theorie nach müsste das doch klappen, oder?

Denn wenn ich auf diesen Button klicke, kommt eine AV und zwar in der Zeile stackcount := TokenStack.Count;
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00428F70 in Modul 'Project1.exe'. Lesen von Adresse 00000004' aufgetreten.
---------------------------
Anhalten  Fortsetzen  Hilfe  
---------------------------
und zusätzlich lande ich in der Unit Contnrs, Zeile 505, wo es heißt:
Delphi-Quellcode:
function TOrderedList.Count: Integer;
begin
  Result := List.Count; //Zeile 505
end;
Was hab ich denn falsch gemacht? Ich kann mir nämlich nicht vorstellen, dass die TStack-Klasse fehlerhaft ist.
Oder hab ich eventuell was mit den Zeigern verkehrt gemacht?

Ich hoffe, ihr könnt mir helfen.
Julian J. Pracht
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Access Violation bei TStack.Count

  Alt 28. Nov 2005, 14:13
Hi!

Hast du ein:
List:=Tlist.Create; in deinem Quellcode?(Bevor List.Count abgefragt wird)

EDIT: oder ist List vom Typ : TOrderedList, damm musst du nur Count, ohne das List. vornedran abfragen, da es ja ein interner Wert ist
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Access Violation bei TStack.Count

  Alt 28. Nov 2005, 14:15
ARGH!
Ich hab den Stack in ner anderen Prozedur erzeugt und befüllt, die ich aber noch gar nicht aufgerufen hab

Es darf gelacht werden

Danke auf jeden Fall
Julian J. Pracht
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Access Violation bei TStack.Count

  Alt 28. Nov 2005, 14:16
LACH
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:59 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