Liebes Forum,
ich möchte die self-Referenz einer Interface-Variable zuordnen, ohne das automatic reference counting durcheinander zu bringen, bisher ohne Erfolg.
Hier der Code (Sinnhaftigkeit ist erstmal egal):
Delphi-Quellcode:
type
IRequest = interface(IInterface)
['{AA14B3B9-9874-4E25-80BC-3C5A9A301ABC}']
function get(): Extended;
end;
TRequest = class(TInterfacedObject, IRequest)
strict private
var
requestValue: IRequest;
public
function get(): Extended;
constructor create();
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TRequest }
constructor TRequest.create;
begin
inherited create();
// bei allen 3 Varianten gibts nen Memory Leak
self.requestValue := Self;
// self.requestValue := Self as IRequest;
// self.requestValue := IRequest(self);
end;
function TRequest.get: Extended;
begin
result := 0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
lReq: IRequest;
begin
lReq := TRequest.create;
end;