Bonjour,
Comment connaître la taille de la mémoire d'un objet TStrings ?
Exemple quelle est la mémoire occupée par TMemo.lines ? ou TListBox.Items ? Après que ces objets ont été initialisés par un code source ?
Merci à tous
Bonjour,
Comment connaître la taille de la mémoire d'un objet TStrings ?
Exemple quelle est la mémoire occupée par TMemo.lines ? ou TListBox.Items ? Après que ces objets ont été initialisés par un code source ?
Merci à tous
Dans quel but souhaites-tu connaitre la taille en mémoire d'un TStrings ?
Est-ce que le problème ne serait pas plutot comment faire avec une liste vraiment longue et éviter de tout charger en mémoire ? Voire, j'ai déjà une liste d'objet avec les infos dedans, comment puis-je afficher une propriété particulière de ces objets sans pour autant copier toutes les valeurs ?
J'initialise un objet TStrings et je dois le passer dans un buffer. Il me faut donc connaître la taille du Strings pour dimensionner le buffer
Bonjour,
Pour passer un Tstrings dans un buffer et le récupérer, on peut utiliser la propriété Tstrings.Text.
Tu veux passer une instance de TStrings dans un buffer ?
Mais tu n'auras qu'un Integer dans ton buffer, TStrings c'est un objet, pas un record, donc tu ne peux pas avoir la main sur l'objet en entier mais juste sur l'endroit où il se trouve.
Tu peux en revanche passer les données qui t'intéressent en extrayant le contenu grâce à la property Text de TStrings (comme l'indique Graffito).
Et la fonction sizeof elle te permet pas de recupérer la taille du TStrings?
Non. Dans Delphi, une variable objet n'est qu'une référence, un pointeur. Sa taille est toujours de 4 octets.
Partager