Einzelnen Beitrag anzeigen

Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

Exception bei TObjectList

  Alt 31. Okt 2012, 09:06
Hallo zusammen,

ich versuche mit Generic.Collections TObjectList<T> zu arbeiten, aber ich bekomme eine Exception und weiß nicht warum.
Folgenden Quellcode habe ich von meinem eigentlichen Program abgekapselt:

Delphi-Quellcode:
unit Unit2;

interface

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

type
  TmyZKS = class
    ZKSID : Integer;
    ZKSExportTab : AnsiString;
    constructor Create(const ZKSID: Integer; const ZKSExportTab : AnsiString);
  end;

type
  TZKSConfig = class
    private
    public
      ZKSType : TObjectList<TmyZKS>;
      ZKSExport : TStringList;
      constructor Create;
      destructor Destroy; override;
  end;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2 : TForm2;
  myConfig : TZKSConfig;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  Close;
end;

{ TmyZKS }

constructor TmyZKS.Create(const ZKSID: Integer; const ZKSExportTab: AnsiString);
begin
  Self.ZKSID := ZKSID;
  Self.ZKSExportTab := ZKSExportTab;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  myConfig.Free;
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  myConfig.Create;
end;

{ TZKSConfig }

constructor TZKSConfig.Create;
begin
  // Hier knallt es!
  ZKSType := TObjectList<TmyZKS>.Create();
  ZKSExport := TStringList.Create;
end;

destructor TZKSConfig.Destroy;
begin
  ZKSExport.Free;
  ZKSType.Free;

  inherited;
end;

end.
Ich verstehe nicht warum? Wenn ich die ObjectList als lokale Variable und nicht in der Klasse deklariere, dann kann ich die ObjectList erstellen. Ich hoffe ihr könnt mir helfen.

Grüße, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat