![]() |
Zeichnen - leichtes Flimmern
Hallo, ich möchte gerne einen Newsticker in mein Programm einbauen, und habe dazu im unteren Bereich ein Panel mit 1600*180 Pixel. Auf diesem Panel ist eine PaintBox. (DoubleBufferd des Panels ist eingeschaltet)
Nun wird im Intervall von 50 ms (per TTimer) eine variable (linke position runtergezählt) und Invalidate von der Paintbox aufgerufen. im OnPaint werden dann verschiedende ZEichenroutinen aufgerufen wie FillRect (ganzen Hintergrun löschen) Line TextOut .... das ganze flimmert nun leicht (dort wo die bewegung ist, der Text nach links rutscht) kann man das irgendwie besser machen ? |
Re: Zeichnen - leichtes Flimmern
Hi,
Mit einem Bitmap im Speicher und bitblt |
Re: Zeichnen - leichtes Flimmern
Zitat:
|
Re: Zeichnen - leichtes Flimmern
Moin!
Hatte ein ähnliches Problem mit TImage. ![]() Warum verwendest du TPaintBox ? Hier wird die Zeichenfläche doch automatisch aktualisiert. D.h. nach jeder Zeichenoperation wird alles dargestellt. So siehst du kurzzeitig das durch FillRect verursachtes Vakuum. |
Re: Zeichnen - leichtes Flimmern
Ach ja, DoubleBuffered auf True verhindert, dass die Zeichenfläche des Formulars kurzzeitig zum Vorschein kommt.
|
Re: Zeichnen - leichtes Flimmern
|
Re: Zeichnen - leichtes Flimmern
Moin!
Grundlegendes: 1. Kein DoubleBuffered verwenden 2. BitBlt verwenden mit einem Hintergrundbild 3. PaintBox verwenden ist ok, dann im OnPaint aber auch mit InterSectRect() und Canvas.ClipRect arbeiten 4. FillRect und BitBlt mit dem angegebenen ClipRect des Canvas beschränken Und damit das ganze auch flimmerfrei sein kann nicht Invalidate verwenden (was bei einer TPaintBox das Invalidate des gesamten Parents auslösen würde (somit der Form höchst wahrscheinlich) sonder mit InvalidateRect() auf das Rechteck der TPaintBox beschränkt. Dadurch wird das ganze optimierter, flimmerfrei und vor allem Resourcen schonender. DoubleBuffer ist wirklich langsam. MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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