AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Wer und was ruft alles TList.Pack() auf (und warum?)
Thema durchsuchen
Ansicht
Themen-Optionen

Wer und was ruft alles TList.Pack() auf (und warum?)

Ein Thema von Der schöne Günther · begonnen am 27. Mai 2013 · letzter Beitrag vom 27. Mai 2013
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Wer und was ruft alles TList.Pack() auf (und warum?)

  Alt 27. Mai 2013, 16:00
Delphi-Version: XE2
Elementares Verhalten einer elementaren Klasse. Und ich finde nichts konkretes.

Folgendes: Ich dachte, ich sei schlau und füge einer TObjectList ab und an auch mal ein eine Nullreferenz hinzu: Add(nil) . Das Anfügen scheint allerdings immer einen Pack() -Befehl auszuführen: Die Nullzeiger werden hier wohl herausgeworfen. Dabei waren doch gerade die Teil meiner ausgefuchsten Überlegungen!

Das DocWiki spricht zu Pack() :
Zitat:
Löscht alle nil- (Delphi) oder NULL- (C++) Elemente aus dem Array Items.

Mit Pack werden innerhalb des Arrays Items alle Elemente, die keine nil- (Delphi) bzw. keine NULL- (C++) Zeiger sind, nach vorne gebracht. Dabei wird der Wert der Eigenschaft Count auf die Zahl der Elemente verringert, die tatsächlich verwendet werden. Die Methode Pack gibt allerdings den für die nil- (Delphi) bzw. NULL- (C++) Zeiger verwendeten Speicher nicht frei. Hierzu muss die Eigenschaft Capacity auf den neuen Wert von Count gesetzt werden.
In der Hilfe vermisse ich zu Add() jetzt den Hinweis, dass Pack() überhaupt aufgerufen wird. Insgesamt auch, welche Methoden noch auf ein Pack() zurückgreifen. Und ob ich das vielleicht auch abstellen kann.

Doch Ihr werdet mir sicher weiterhelfen können.
  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 18:33 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