AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language kann dieses Konstrukt überhaupt funktionieren? (Arrays...)
Thema durchsuchen
Ansicht
Themen-Optionen

kann dieses Konstrukt überhaupt funktionieren? (Arrays...)

Offene Frage von "xZise"
Ein Thema von cherry · begonnen am 28. Jul 2010 · letzter Beitrag vom 5. Aug 2010
 
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.492 Beiträge
 
Delphi 12 Athens
 
#2

AW: kann dieses Konstrukt überhaupt funktionieren? (Arrays...)

  Alt 28. Jul 2010, 08:09
Man darf nicht einfach Records mit Move überschreiben, wenn diese Strings, Arrays oder Interfaces enthalten. Diese werden dann nicht mehr freigegeben. Noch schlimmer ist aber, das letzte Element wird in der Liste praktisch verdoppelt, ohne den Referenzzähler der Strings zu erhöhen. Durch SetLength wird der letzte Element freigegeben und damit auch diese Strings (Referenzzähler fällt auf 0).
Das vorletzte Element verweist danach auf ungültige Strings bzw. Speicher.

Hier mal ein Beispiel wie man trotzdem mit Move im Array arbeiten kann: MoveElements

Für Groups, Directories usw. sind im Prinzip immer wieder die selben Funktionen implementiert.
Ich denke es wäre sinnvoller mit TList oder TObjectList zu arbeiten und die Records auf Klassen umzustellen.

Geändert von Blup (28. Jul 2010 um 08:20 Uhr)
  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 05:07 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