AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Interfaces: Ich werd' irre!

Ein Thema von Fingolfin · begonnen am 8. Jun 2004 · letzter Beitrag vom 11. Jul 2004
 
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.223 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Interfaces: Ich werd' irre!

  Alt 8. Jun 2004, 21:04
Ich glaube Du bist auf den einzigen Fehler gestoßen, den Delphi bei Interfaces in Bezug auf die Automatische Referenzzählung besitzt.

Das Problem ist, das Du dir einen Zeiger auf das Objekt merkst, jedoch als Rückgabewert der Funktion einen Interfacezeiger lieferst. Wird der zurückgegebene Interface-Zeiger nicht mehr benötigt, geht der Ref-Counter auf 0 zurück und das Objekt wird freigegeben. Jedoch merkst Du dir den zeiger auf das (nicht mehr vorhandene) Objekt. Und das wird nicht zurückgesetzt.

Lösung 1: Nimm als Modulvariable ein ITest statt einem TTest
Delphi-Quellcode:
var
  FTest: ITest;
Lösung 2: Zurücksetzen der Modulvariable im Destruktur
Delphi-Quellcode:
destructor TTest.Destroy;
begin
  FTest := nil;
  inherited;
end;
Lösung nicht getestet, jedoch aufgrund eigener Erfahrungen müsste das dein Problem lösen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 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-2025 by Thomas Breitkreuz