![]() |
Bild-/Imagewechsel flackerfrei darstellen
Hallo zusammen,
ich überarbeite derzeit meine Bilderverwaltung und möchte jetzt zusätzlich die Bilder in einer Diashow bildschirmfüllend darstellen. Dabei stört jedoch erheblich, dass bei einem Bildwechsel für ein paar Zehntelsekunden auf den grauen Hintergrund des Formulars geschalten wird. Nach einfügen von
Delphi-Quellcode:
ist das flackern zwar weg, dafür wird in einem Panel, in dem Name und Datum des Bildes dargestellt werden, der alte Text nicht gelöscht, sondern immer wieder überschrieben, so dass irgendwann nur noch ein schwarzer Fleck da ist.
foImage.DoubleBuffered:=true; // Verhindert grauen Bildschirm (flackern) zwischen zwei Bildern
Ich habe auch überlegt, mit zwei Images zu arbeiten, eins davon auf not Visible zu setzen, mit LoadFromFile zu beladen und danach das andere auf not Visible zu setzen und das neu beladen auf visible. Genutzt hat das aber nichts, da der LoadFromFile-Prozess wohl im Hintergrund fertiggestellt wird. Komischerweise hat aber auch eine Zwangspause nicht weitergeholfen. Eine Eigenschaft, anhand der ich feststellen kann, ob das Laden fertig ist, habe ich nicht gefunden
Delphi-Quellcode:
abläuft.
if Image1.visible then
Image2.Picture.LoadFromFile(sFile) else Image1.Picture.LoadFromFile(sFile); uHilfs1.SetStart; repeat application.ProcessMessages; // Prozesszeit freigeben until uHilfs1.GetStart>0.5 // 0.5 Sekunden warten Image1.Visible:=not Image1.Visible; Image2.Visible:=not Image1.Visible; Wer hat Ideen, wie die flackerfreie Darstellung realisiert werden kann. Vielen Dank Gerd |
Re: Bild-/Imagewechsel flackerfrei darstellen
Ich empfehle Dir dafür mal Andorra2D anzuschauen. Das ist eine 2D-Engine mit Hardwarebeschleunigung, zu der du hier im Forum sicher einiges finden wirst.
|
Re: Bild-/Imagewechsel flackerfrei darstellen
Zitat:
Also ich habe bei meinem Bildbetrachter auch einfach DoubleBuffered eingeschaltet. So ein Problem wie du es it dem label hast, habe ich nicht. Ich habe auch bisher noch nie von einem solchem Problem gehört. |
Re: Bild-/Imagewechsel flackerfrei darstellen
Das Problem ist die Verwendung von TImage. Dieses zeichnet sich auf die Canvas des Parents und sobald sich das Bild ändert muss das Elternelement mit allem was drauf ist neu gezeichnet werden. Wenn du keine Alphatransparenz benötigst verwende eine Komponente mit eigener Canvas.
Was hat die Frage eigentlich mit Datenbanken zu tun? In welcher Art und Weise beeinflussen die dein Vorhaben bzw. das was passiert aber nicht passieren soll? |
Re: Bild-/Imagewechsel flackerfrei darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
|
Re: Bild-/Imagewechsel flackerfrei darstellen
Zitat:
Zur Frage: Nutze TPaintBox oder leite dir eine eigene Komponente z.B. von TGraphicControl ab. |
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Datenbanken" nach "VCL / WinForms / Controls" verschoben.
|
Re: Bild-/Imagewechsel flackerfrei darstellen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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