Einzelnen Beitrag anzeigen

HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#1

Generics.TObjectList

  Alt 2. Nov 2012, 09:39
Ich habe immer noch nicht verstanden, wie man mit der "neuen" Generics.TObjectList nun eine Liste definiert, die beliebige andere typisierte Listen aufnehmen kann.

Eine "alte" TObjectList konnte doch auch beliebige abgeleitete Klassen aufnehmen.

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Generics.Collections;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


type
  TMyClass1 = class(TObject)
    Dummy : String;
  end;

  TMyClassList1 = class(TObjectList<TMyClass1>);

  TMyClass2 = class(TObject)
    Test : Integer;
  end;

  TMyClassList2 = class(TObjectList<TMyClass2>);

var
  Form1: TForm1;

  AMyClassList1 : TMyClassList1;
  AMyClassList2 : TMyClassList2;

  AObjectList : TObjectList<TObject>; // ???

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  AObjectList := AMyClassList1; // Compiler-Error
  AObjectList := AMyClassList2;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  AMyClassList1 := TMyClassList1.Create(True);
  AMyClassList2 := TMyClassList2.Create(True);
end;

end.
Wie muss man AObjectList deklarieren, damit die Variable Listenobjekte beider definierter Klassen MyClassList1,2 annehmen kann?

Ich habe eine (alte) Komponente, die eine Art graphische Tabelle darstellt und beliebige abgeleitete TObjectList annimmt. Ich verstehe nicht, wie man dieses alte Konzept mit der neuen Klasse verwendet.
  Mit Zitat antworten Zitat