Bilder laden



  • Hallo,

    ich schreibe an einer Anwendung um Bilder zu sortieren. Das ganze soll mit vor-zurück und Drag&Drop mal später laufen. Zur Anzeige der Bilder verwende ich mehrere TImage Komponenten.

    Leider ist die Ladezeit eines Bildes doch schon bemerkbar langsam. (Bis zu 1 sec) Was kann man dagegen machen? Weie kann man die Bilder schneller laden? Kann man sie vorrauschauend laden?

    Vielen Dank für die Hilfe!



  • Hallo Anton,

    ohne den Aufbau Deines Programms zu kennen ist das schwer zu beurteilen.

    Ich würde visible auf false setzen und versuchen so früh wie möglich zu laden. Nach jedem Bild Application->ProcessMessages(), damit man weiterarbeiten kann.

    Wenns was kosten darf kann ich noch ImagXpress empfehlen:
    http://www.accusoft.com/

    Ob die Komponente schneller lädt als TImaage kann ich allerdings nicht sagen, dafür sehen skalierte Bilder etwas besser aus und es sind viele Bildbearbeitungsfunktionen einfach da.

    Gruß

    Martin



  • Hallo,

    das Problem ist, dass bis zu einer bestimmten Benutzeraktion ein "altes" Bild angezeigt wird, und dann durch die Aktion ein neues geladen werden muss.
    Somit ist die Wartezeit auch direkt durch den Benutzer sichtbar und daher unschön.

    Man kann sich das Problem selbst herleiten: ein Formular, 2 Buttons, einer läd Bild A, einer Bild B.

    Auch bei deisem Beispiel sehe ich die "Zeit".

    Grüße Anton



  • Kannst du die Bilder nicht schon vorher laden und im Speicher halten? Damit sollte beim Umschalten keine Verzögerung mehr auftreten.



  • Wenn die Bilder alle gleich groß sind bietet sich hier TImageList an.



  • Wie kann ich ein Bild "vorladen" bzw. weise ich das vorgeladene Bild dann dem TImage zu? Brauche ich dazu ein zweites TImage?



  • Hallo

    Damit ist gemeint, das du mit TBitmap oder TImageList beim Programmstart alle Bilder einmalig lädst und dann den Bildwechsel nur noch zwischen Hintergrund-Objekt und TImage-Komponente machst.

    bis bald
    akari


Anmelden zum Antworten