AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Freigabe eines Objektes wenn keine Referenz mehr drauf zeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Freigabe eines Objektes wenn keine Referenz mehr drauf zeigt

Ein Thema von Thebe · begonnen am 30. Sep 2005 · letzter Beitrag vom 30. Sep 2005
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Freigabe eines Objektes wenn keine Referenz mehr drauf z

  Alt 30. Sep 2005, 17:17
Ich glaube du solltest eher das Singleton Pattern implementieren, wenn du einen Referenzzähler haben möchtest.
Das würde dann eher so aussehen :
Delphi-Quellcode:
unit UTestClass;

interface
 
uses ....;

  type
    TTestClass = class(TObject)
      protected
        refCount : Integer;
        constructor create;
      public
        class function getInstance : TTestClass;
        class procedure releaseInstance;
    end;

implementation

var GlobalInstance : TTestClass;

class function TTestClass.getInstance;
begin
  if not assigned(GlobalInstance) then
    begin
      GlobalInstance := TTestClass.create;
    end; // if assigned(GlobalInstance)
  inc(GlobalInstance.refCount);
  result := GlobalInstance;
end; // class function TTestClass.getInstance;

class procedure TTestClass.releaseInstance;
begin
  if assigned(GlobalInstance) then
    begin
      dec(GlobalInstance.refCount);
      if (GlobalInstance.refCount < 1) then
        begin
          GlobalInstance.Free;
        end; // if (GlobalInstance.refCount < 1)
    end; // if assigned(GlobalInstance)
end; // class procedure TTestClass.releaseInstance;

constructor TTestClass.create;
begin
  self.refCount := 0;
end; // constructor TTestClass.create;
Musst du gucken, ob du irgendwas nebenläufig machst, dann wäre natürlich ne Criticalsection nicht unwichtig. Für Fehler im Code vorab sorry, hab es gerade nur im Browser gemacht, ohne Syntaxcheck.
  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 22:56 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