Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Speichern und lesen einer TObjectList (https://www.delphipraxis.net/55906-speichern-und-lesen-einer-tobjectlist.html)

tobi1701 28. Okt 2005 14:27


Speichern und lesen einer TObjectList
 
hallo,

wie ich schon in anderen threads geschrieben habe, programmiere ich gerade eine kleine datenbank für videospiele.
sie besteht im wesentlichen aus einer TObjectList und ein eintrag in dieser liste enthält neben diversen strings (name,hersteller,usw.) auch noch eine TObjectList mit screenshots.

ich habe das programm soweit am laufen, dass ich auf einen "Add"-button klicken kann, wodurch sich ein formular öffnet, in dem ich die eingaben für einen neuen eintrag machen kann inklusive der screenshots.

so. wenn ich jetzt aber abschätze, dass jeder eintrag inklusive der grafikdaten ca. 200kb gross wird, bekomme ich auf kurz oder lang ein speicherproblem.
wie wäre das wohl am besten zu realisieren? sollte in der TObjectList nur der pfad für die jeweiligen screenshots enthalten sein, die dann bei bedarf von platte geladen werden?
da immer ca. 10 einträge im listenfeld sichbar sind, würden ja beim durchscrollen durch die liste unglaublich viele zugriffe auf die platte statt finden (immer die 10 sichtbaren einträge würden ihre screenshots über den gegebenen pfad lesen wollen).
zur zeit lade ich die bilder direkt in meine ObjectList, aber wie schon erwähnt, kann das schnell in grössenordnungen von 100MB und mehr anwachsen. zumal ja gar nicht immer alle informationen benötigt werden, sondern nur die gerade sichtbaren.

oder kann man die ObjectList in einen stream speichern, der dann immer die informationen ausliest, die gerade benötigt werden? es erscheint mir allerdings nicht sinnvoll, denn wenn ich beispielsweise eintrag Nr. 5 von 400 lösche, müsste ja die gesamte liste ab eintrag 5 neu gespeichert werden.

hat da jemand eine idee, wie das am einfachsten zu realisieren ist?

SirThornberry 29. Okt 2005 02:06

Re: Speichern und lesen einer TObjectList
 
Der Ansatz die Bilder nur zu Laden wenn Sie sichtbar sind scheint mir am sinnvollsten. Eine Möglichkeit in dem Zusammenhang wäre auch das du das Bild erst von der Platte lädst wenn es noch 5 Sekunden (oder andere Zeit) immer noch angezeigt werden soll und nicht weitergescrollt wurde. Oder du zeigst die Bilder nicht allgemein an sondern nur wenn man einen Eintrag in der Liste auswählt, dass dann irgendwo anders das dazugehörige Bild angezeigt wird.

tobi1701 29. Okt 2005 12:46

Re: Speichern und lesen einer TObjectList
 
ich habe mich so entschieden, dass ich pro eintrag 2 verkleinerte bitmaps als thumbnail behalte (in der liste, also permanent im speicher) und die anderen bilder nur dann geladen werden, wenn der eintrag markiert ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 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