![]() |
LiveTime Managment an Object übergeben
Hallo Zusammen...
Gegeben sein ein TStream. Kann ich die Destroy Methode so überschreiben, dass "mein" Object erst/mit destroyed wird? Beispiel:
Delphi-Quellcode:
Var
S : TStream; F : TStreamWrapper; begin S := TStream.Create; F := TStreamWrapper(S); ... S.Free; // Ruft F.Free auf und dann wird S.Free aufgerufen end; Mavarik :stupid: |
AW: LiveTime Managment an Object übergeben
Anders herum hätte ich es verstanden. Dass "S" Eigentum von "F" geworden ist. Das ist ja beispielsweise bei TStream und TStreamWriter so:
![]() Aber woher soll "S" denn von "F" wissen? |
AW: LiveTime Managment an Object übergeben
Zitat:
Du solltest vielleicht nochmal dein Design überdenken. |
AW: LiveTime Managment an Object übergeben
Zitat:
|
AW: LiveTime Managment an Object übergeben
Zitat:
|
AW: LiveTime Managment an Object übergeben
Hallo Mavarik,
Zitat:
Mir ist deine Motivation für diese Anforderung nicht klar. Meine Wrapper-Klassen sehen eher so aus:
Delphi-Quellcode:
Und dann ist auch klar wie die Freigabe erfolgt.
type
TStreamWrapper = class(TStream) private FStream: TStream; FOwnsStream: Boolean; ... public constructor Create(Stream: TStream; OwnsStream: Boolean); destructor Destroy; override; ... end; constructor TStreamWrapper.Create(Stream: TStream; OwnsStream: Boolean); begin inherited Create; FStream := Stream; FOwnsStream := OwnsStream; end; destructor TStreamWrapper.Destroy; begin if FOwnsStream then FStream.Free; inherited; end; var S : TStream; F : TStreamWrapper; begin S := TStream.Create; F := TStreamWrapper.Create(S, True); ... F.Free; // Ruft S.Free auf und dann wird F freigegeben end; Deine Anforderung scheint noch ein Geheimis zu enthalten das du nicht mit uns teilen willst. :-) |
AW: LiveTime Managment an Object übergeben
Zitat:
Aber wie schon gesagt wurde: Für einen alternativen Lösungsvorschlag (abgesehen von internen Rumwurschteln) fehlen uns noch einige Informationen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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 by Thomas Breitkreuz