Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Access Violation bei TStack.Count (https://www.delphipraxis.net/57890-access-violation-bei-tstack-count.html)

Ultimator 28. Nov 2005 13:10


Access Violation bei TStack.Count
 
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. :)

Angel4585 28. Nov 2005 13:13

Re: Access Violation bei TStack.Count
 
Hi!

Hast du ein:
Delphi-Quellcode:
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

Ultimator 28. Nov 2005 13:15

Re: Access Violation bei TStack.Count
 
:wall: ARGH!
Ich hab den Stack in ner anderen Prozedur erzeugt und befüllt, die ich aber noch gar nicht aufgerufen hab :wall:

Es darf gelacht werden :lol:

Danke auf jeden Fall :)

Angel4585 28. Nov 2005 13:16

Re: Access Violation bei TStack.Count
 
LACH :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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