Hab es jetzt so umgeändert:
Delphi-Quellcode:
procedure TMainForm.btnDBEditClick(Sender: TObject);
var
wItem: TWasteItem;
begin
wItem := TWasteItem.Create(Self);
ShowItemDlg(wItem);
end;
procedure TItemDlg.FormCreate(Sender: TObject);
begin
fPath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
fItems := TStringList.Create;
//fWasteItem wird nur noch erstellt wenn an Waste kein Objekt vom Typ
//TWasteItem übergeben wird
if Waste = nil then
fWasteItem := TWasteItem.Create(Self);
If FileExists(fPath + 'waste.itm') then
begin
ItemList.Items.LoadFromFile(fPath + 'waste.itm');
end;
end;
Den OnDestroy Event hab ich unangetastet gelassen da man ja so oder so das WasteItem übergibt und es dann frei gibt, ich habs also - so wie ich es verstanden hab - doppelt freigegeben.
mfg phlux
Edit: Stimmt, pack ich das ganze nach OnShow dann dürfte es stimmen