Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Falls man Delphi 2007 hat, ist eventuell auch die Lösung mit Generics sinnvoll. (Und elegant)
|
Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Aber nicht unter Win32
|
Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Zitat:
Grundsätzlich benutze ich aber auch lieber Listen. Gruß oki |
Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Was sagt die Hilfe denn?
Zum Memory Manager gibt es da keine solche Aussage denke ich, oder doch. Das Array an sich gibt den Speicher schon wieder frei, nur dem Memory Manager hält ihn, damit er für spätere Anforderungen schneller ist (oft hilft das zwar, aber bei sowas halt nich). Außerdem nimmt er sich immer bei Vergrößerung eines Arrays neuen Speicherplatz mit der kompletten neuen Größe. Ich bin, wie gesagt da auch Anfangs mit meiner Anwendung reingefallen, da ich ein Dynamisches Array (von einem eigenen Type, der schon ein paar Byte bracht) genutzt habe und es immer um eins größer oder kleiner gemacht habe. Das führte irgendwann mal zu der Windows Meldung, daß nicht genug Speicher da ist (er meint wohl Heap, da allgeien noch weit mehr als genug Speicher frei war). Alleine das Umschreiben des Codes (num vergößere ich das Array immer um 1000, egal ob ichs brauch oder nicht) brachte Erfolge und keine solchen Fehlermeldungen mehr. Nachteil: ich muß die wirkliche Größe in einer separaten Variable mitführen und immer checken, wann ich das Array vergrößern muß. Deshalb hier der Ansatz einer Koponenten die beide diese Fälle löst, also die TList. Ich habe übrigens lange im Netz gesucht, um dem Phänomen auf die Spur zu kommen. Bin aber dann doch im Netz fündig geworden, weiß aber nicht mehr wo. |
Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Was? :shock:
Der Delphi-Memory-Manager defragmentiert seinen Speicher nicht? Das wäre mir jetzt sehr neu. |
Re: Koponenten TRealList (TSingleList) und TIntegerList gesu
Zitat:
ich würde die TList aber wrappen und nicht ableiten... bei einer Ableitung kann man immer noch auf TList casten und falsche Pointer reingeben. Gewrappt kann man nur das benutzen, was da ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz