Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Überprüfung ob Objekt eine generische Liste ist

  Alt 3. Jan 2011, 00:33
Kennt jemand inzwischen vielleicht doch eine Lösung?

Mein Problem:
Ich habe einen Container mit einer generischen Liste
Delphi-Quellcode:
unit od;

interface

uses
  Classes, Contnrs, Generics.Collections;

type

  AttrOd = class(TCustomAttribute);

  Tod = class(TComponent)
  private
    ...
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    ...
  published
    ...
  end;

  Todl<T: Tod> = class(Tod)
  private
    FItems: TObjectList<T>;
  protected
    ...
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Items: TObjectList<T>read FItems;
  published
  end;

...

constructor TodSport.Create(AOwner: TComponent);
begin
  inherited;
  FNumeratorList := Todl<TodNumerator>.Create(Self);
  FDisciplineGroupList := Todl<TodDisciplineGroup>.Create(Self);
end;

...

Über RTTI ermittle ich verschiedene Eigenschaften und erhalte ein TObject "O", das auf die Property NumeratorList von Sport zeigt.
Nun würde ich gern auf die einzelnen Items zugreifen (z.B. über (O as Todl<Tod>).Items[0] ).

An den ClassName 'TObjectList<odNumerator.TodNumerator>' komme ich heran, aber ein Cast ist wohl nicht möglich, oder?

Ich will mit allen Items (die vom Typ "Tod" sein müssen) eine Aktion durchführen.
Muss ich in diesem Fall auf Generics verzichten?
Miniaturansicht angehängter Grafiken
o.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat