Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Interfaces in lokalen Variablen und deren Freigabe

  Alt 24. Aug 2021, 06:46
Vielleicht ist es für mich noch zu früh am Morgen, aber wenn du das einkürzen könntest sodass ein lauffähiges Programm überbleibt wäre das super hilfreich.

Ich habe es mal versucht in einem kompletten Programm nachzustellen (so wie du es beschrieben hast) und da ist alles in Ordnung - Da scheint also noch mehr dahinter zu stecken.

Delphi-Quellcode:
program Project1;

uses FastMM4, System.SysUtils, System.Generics.Collections;

type
   TMyInterfacedObject = class(TInterfacedObject, IInterface)
   private var
      objects: TObjectList<TObject>;
   public
      constructor Create(const a, b: TObject);
      destructor Destroy(); override;
    end;

{ TMyInterfacedObject }
   constructor TMyInterfacedObject.Create(const a, b: TObject);
   begin
      inherited Create();
      objects := TObjectList<TObject>.Create({ownsObjects:}True);
      objects.Add(a);
      objects.Add(b);
   end;

   destructor TMyInterfacedObject.Destroy();
   begin
      objects.Free();
      inherited;
   end;

procedure p();
var
   a, b: TObject;
   g: IInterface;
begin
   a := TObject.Create();
   b := TObject.Create();
   g := TMyInterfacedObject.Create(a, b);
end;

begin
   p();
end.
Was gibt es denn noch spannendes was bei dir mit // ... angedeutet ist?
  Mit Zitat antworten Zitat