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