AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Vererbung und generische Listen

Ein Thema von hschmid67 · begonnen am 6. Nov 2017 · letzter Beitrag vom 14. Nov 2017
 
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
74 Beiträge
 
Delphi 12 Athens
 
#1

Vererbung und generische Listen

  Alt 6. Nov 2017, 05:01
Delphi-Version: 5
Hallo Zusammen,

ich versuche schon seit Stunden / Tagen etwas zum Laufen zu bringen, aber es gelingt mir nicht. Vielleicht habt Ihr mir einen Hinweis?

Ich habe in einer Basisklasse eine generische Liste gespeichert und schaffe es nicht, in einer Methode der Basisklasse auf die Elemente der Liste zuzugreifen:

Delphi-Quellcode:
TBaseClass = class
  FObject : TObject; // hier kann sowohl ein <T> als auch ein TObjectList<T> vorkommen
  procedure Print;
end;

procedure TBaseClass.Print;
begin
  writeln(FObject.Classname);
end;
Soweit funktioniert das auch ganz gut. Ich bekomme als Ausgabe entweder

'TObjectList<kdb_classes.TkdbUserClass>'
oder
'kdb_classes.TkdbUserClass'

Warum aber kann ich nicht auf das erste Element der ObjektListe zugreifen? Alle Versuche mit Casts schlagen fehl:

Bei

writeln(TObjectList<kdb_classes.TkdbUserClass>(FObject).classname); bekomme ich die Meldung

Inkompatible Typen.

Bei

writeln(TObjectList<kdb_classes.TkdbUserClass>(FObject)[0].Classname); ebenso. Wie kann ich auf die Elemente aus der Liste zugreifen?

TObjectList(FObject).Count funktioniert z.B. und gibt den entsprechenden Wert zurück.

Was ich eigentlich will: Ich möchte das erste Element der Liste, wenn es denn eine Liste ist (das kann ich prüfen über den Classname).

Was mache ich falsch? Wo ist mein Denkfehler?

Vielen Dank schon mal für's Mitdenken
Harald
Harald Schmid

Geändert von hschmid67 ( 6. Nov 2017 um 06:40 Uhr)
  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 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz