AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

typecasting Problem

Ein Thema von TheAn00bis · begonnen am 6. Mär 2006 · letzter Beitrag vom 6. Mär 2006
Antwort Antwort
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
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.056 Beiträge
 
#2

Re: typecasting Problem

  Alt 6. Mär 2006, 17:20
Zitat von TheAn00bis:
Also: wo ist der Un terschied zwischen twaggon(keller('gleis'+inttostr(i)).pop); und twaggon(gleis1.pop);? Bzw. was ist an Code 2 falsch?
Schau dir deinen Code nochmal an:
Wo liegt der unterschied?
Delphi-Quellcode:
twaggon(keller('gleis1').pop);
//vs.
twaggon(gleis1.pop);
du castest einen string auf den Typ keller. Das kann doch nicht gutgehn, oder

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
TheAn00bis

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

Re: typecasting Problem

  Alt 6. Mär 2006, 17:26
Du hast Recht...

Also muss ich die Gleise in ein Array packen, oder? Sowas wie FindCompnent gibts nicht für Objekte, oder?
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.056 Beiträge
 
#4

Re: typecasting Problem

  Alt 6. Mär 2006, 17:33
Zitat von TheAn00bis:
Also muss ich die Gleise in ein Array packen, oder? Sowas wie FindCompnent gibts nicht für Objekte, oder?
Ob du die Objekte mit FindComponent findest hängt von der Deklaration und davon ab, wie du sie erstellst, aber ich wage es zu bezweifeln. Wenn du mehrere Objekte eines Typs hast, die du über Indexe ansprechen willst, wäre ein Array echt die Ideale Lösung.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf