Thema: Delphi typecasting Problem

Einzelnen Beitrag anzeigen

TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

typecasting Problem

  Alt 6. Mär 2006, 16:53
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?
  Mit Zitat antworten Zitat