Hey, folgender Code funktioniert:
Delphi-Quellcode:
procedure TForm_Rangierbahnhof.Button1Click(Sender: TObject);
var a,b: Twaggon;
gleis1: keller;
begin
a:=twaggon.init(1);
gleis1.push(a);
b:=twaggon(gleis1.pop);
end;
Dieser, der den einzigen Unterschied hat, dass Gleis1 aus "Gleis" und "1" zusammengesetzt ist, verursacht eine
Access Violation:
Delphi-Quellcode:
procedure TForm_Rangierbahnhof.Button1Click(Sender: TObject);
var a,b: Twaggon;
i: integer;
gleis1: keller;
begin
i:=1;
a:=twaggon.init(1);
gleis1.push(a);
b:=twaggon(keller('
gleis'+inttostr(i)).pop);
//Access Violation
end;
Die Klasse "Keller" ist eine lineare Liste. Dabei fügt die Methode "push" an das Ende ein Element vom Typ TObject an und "pop" übergibt das Element am Ende und löscht es aus der Liste.
Also: wo ist der Un terschied zwischen twaggon(keller('gleis'+inttostr(i)).pop); und twaggon(gleis1.pop);? Bzw. was ist an Code 2 falsch?