Forum: Sonstige Fragen zu Delphi
Delphi
by negaH,
24. Mär 2006
@Xarmoz:
Ich verstehe deine "Probleme" sehr wohl, aber sehe es einfach nicht als "Problem". Du machst aus deinem Problem ein Problem das angeblich in Delphi existieren soll und schlägst Lösungen vor die dein "Problem" im Endeffekt nur noch verschlimmbesseren.
Und exakt damit habe ICH ein Problem. Und das habe ich versucht hier für andere Leser des Threads exakt herauszuarbeiten.
Es...
Forum: Sonstige Fragen zu Delphi
Delphi
by negaH,
24. Mär 2006
Darum geht's mir, ich will nur auf diese Stolperfalle hinweisen. Und hier könnte der Delphi-Compiler tatsächlich erkennen, dass ich das Objekt nicht freigeben will und noch einen Referenzblock rumbasteln. Da Delphi das nicht macht, kann man es selbst machen.
Nein, und das darf der Compiler eben nicht, bzw. er kann es auch garnicht.
Das verhalten ein Object zu erstellen und dieses dann...
Forum: Sonstige Fragen zu Delphi
Delphi
by negaH,
24. Mär 2006
Nein, die Referenzzählung arbeitet einwandfrei, du machst einfach einen logischen Denkfehler.
procedure TuWas(Intf: IInterface);
// try
// Intf._AddRef <- Referenzcounter ist jetzt +1
begin
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by negaH,
23. Mär 2006
Man kann ein Objekt auch gemischt mit Interfaces benutzen, das geht dann so:
var
Obj: TMyObject;
Intf: IInterface;
begin
Obj := TMyObject.Create;
Intf := Obj;
Forum: Sonstige Fragen zu Delphi
Delphi
by negaH,
23. Mär 2006
Der Aufruf von ._AddRef() und ._Release() ist eine sehr schlechte Idee und sollte eigentlich niemals notwendig sein.
Bei der Benutzung von Interfaces in Delphi ist ein Punkt ganz wichtig: Alle Zugriffe auf ein Objekt sollten immer über das Interface erfolgen. Eine manuelle Freigabe der Objekte hinter dem Interface oder des Interfaces selber ist niemals notwendig.
Werden Interfaces als...