Einzelnen Beitrag anzeigen

norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
505 Beiträge
 
Delphi 12 Athens
 
#1

Bild-/Imagewechsel flackerfrei darstellen

  Alt 7. Jan 2008, 10:47
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

  foImage.DoubleBuffered:=true; // Verhindert grauen Bildschirm (flackern) zwischen zwei Bildern 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.

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:
    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;
abläuft.

Wer hat Ideen, wie die flackerfreie Darstellung realisiert werden kann.

Vielen Dank
Gerd
  Mit Zitat antworten Zitat