Announcement

Collapse
No announcement yet.

D5: Flackern bei Bildwechsel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • D5: Flackern bei Bildwechsel

    Hallo zusammen,

    mit folgendem Code versuche ich Jpeg-Bilder in eine Form zu malen. 2 Schlatflächen haben zum Test jeweils mit Ausnahme des Jpeg-Pfades identischen Code:

    <pre>
    procedure TForm1.Button2Click(Sender: TObject);
    var J: TJpegImage;
    b: TBitmap;
    Dest, Source: TRect;
    begin
    //form1.DoubleBuffered:=true hilft nicht weiter;
    Source := Rect(0,0,500,500);
    Dest := Rect(10,10,500,500);
    b:=TBitmap.Create;
    J:= TJpegImage.Create;
    J.loadfromfile('C:\flame03.jpg');
    b.assign(j);
    form1.Canvas.CopyRect(Dest,b.canvas,Source);
    end;

    procedure TForm1.FormPaint(Sender: TObject);
    begin
    //form1.DoubleBuffered:= true macht keinen Unterschied;
    end;
    </pre>

    Wie kann man das Flackern beim Bildwechsel vermeiden?

    Danke für alle Tipps

    Walter Grimm

  • #2
    hi walter

    mit BitBlt könnte es etwas schneller gehen. Auf welchem Canvas du zeichnest ist egal. Im folgenden Beispiel verwende ich eine Paintbox.

    pb : PaintBox

    bmpBild : TBitmap

    HorzScroll, VertScroll : TScrollBar

    <PRE>
    procedure TfrmbcMain.pbPaint(Sender: TObject);
    begin
    BitBlt(pb.Canvas.Handle,
    0,
    0,
    pb.Width,
    pb.Height,
    bmpBild.Canvas.Handle,
    HorzScroll.Position,
    VertScroll.Position,
    SRCCOPY);
    end;
    </PRE>

    Was damit nicht zu unterbinden ist, ist das Flackern bei OnResize. Wie man das unterbinden kann, wüßte ich auch gerne.

    Gruß, Bernhar

    Comment


    • #3
      Danke Bernhard,

      ich werde es ausprobieren.

      mfg

      Walte

      Comment


      • #4
        Hi,

        als Notlösung geht auch ein Panel, was für fast alles past wie auch Labels die Flackern wenn sie offt Aktualisiert werden.

        Gruß Björ

        Comment

        Working...
        X