AGB  ·  Datenschutz  ·  Impressum  







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

Pointer von AddObject wieder freigeben

Ein Thema von Pfoto · begonnen am 5. Nov 2005 · letzter Beitrag vom 5. Nov 2005
 
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Pointer von AddObject wieder freigeben

  Alt 5. Nov 2005, 14:22
Das ist es ja: du übergibst ja kein Objekt.

Eine Variable von TObject wäre nur der Speicherplatz für einen Zeiger wo im Speicher das Objekt liegt. Dieser Speicherplatz wird beim Constructor alloziiert und im Destructor wieder freigegeben.

Die TStringList hat nun vorgesorgt und für jeden String auch gleich Platz für einen Zeiger gehalten. Dort wird dann die Adresse des Objektes eingetragen, wenn du eins hinzufügst. Dieser Speicherplatz für den Pointer ist 4 Byte gross (siehe auch SizeOf(TObject)). Und genauso gross ist auch ein Integer. Dass bedeutet du benutzt den Speicherplatz wo der Pointer abgelegt wird und legst statt einer Adresse deine Zahl (Integer) ab. Nun will aber TStringList ein Objekt als Typ haben bei AddObjekt und daher meckert der Compiler. Darum sagst du dem Compiler mit TObject(deinInteger) einfach: "Hör zu - auch wenn es so aussieht - das ist kein Integer - das ist ein Objekt, also nimm den". Da sich die TStringList eh nur die Adresse des Objektes vermerkt und ihr es egal ist wie gross und wo das Objekt liegt, passt das. Sie vermerkt sich dein Integerinhalt als Adresse und führt ihn mit. Da die TStringList nix mit den Objekten macht sondern nur die Adressen verwaltet, gibs soweit auch keine Probleme.

Das Objekt müsstest du freigeben - du hast aber kein Objekt. Du sagst dem Compiler nur, das ist eins (bzw. behandle es wie eins), aber du legst ja keins an. Daher auch nix freizugeben.
  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 04:37 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