![]() |
Exception bei TObjectList
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:
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.
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. Grüße, Moony |
AW: Exception bei TObjectList
Wieso ist es eigentlich üblich die Fehlermeldung einer Exception nicht zu posten?:roll:
|
AW: Exception bei TObjectList
Zitat:
Delphi-Quellcode:
So besser?
procedure TForm2.FormShow(Sender: TObject);
begin myConfig := TZKSConfig.Create; end; |
AW: Exception bei TObjectList
@DeddyH: Na das war ja einfach. Hätte auch selbst drauf kommen können.
Danke. Problem ist somit erledigt. Grüße, Moony |
AW: Exception bei TObjectList
Du fängst Dir aber u.U. Speicherlecks ein, da bei jedem Show eine neue Instanz erstellt und die alte überschrieben wird. Freigegeben wird sie ja im OnClose, das passt nicht richtig zusammen. Spricht etwas dagegen, die Instanz im OnCreate anzulegen und im OnDestroy wieder freizugeben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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 by Thomas Breitkreuz