![]() |
Flackern trotz doubleBuffered:=true
Hallo zusammen,
da ich langsam die Welt nicht mehr verstehe, keine Ideen mehr habe und mir auch keine schlauen Begriffe mehr einfallen, um Google zu füttern, hoffe ich mal hier auf Ideen. Vielleicht ist ja doch alles ganz einfach. :) Ich zeichne mit einem TBitmap im Hintergrund ein Bild und will dies von Zeit zu Zeit auf einem TPaintBox-Objekt ausgeben - zum Beispiel wenn eine Scrollbar bewegt wird, um einen neuen Ausschnitt aus dem Bitmap anzuzeigen. Das ganze wird per Canvas.CopyRect realisiert. So weit, so klassisch. Alles läuft ganz wunderbar, wenn die PaintBox unmittelbar in ein Form gesetzt wird. Im Form setze ich dann doubleBuffered:=true und kann fröhlich scrollen, ohne, dass irgendwas flackert. Wenn ich das gleiche PaintBox-Objekt nun aber auf ein Panel setze oder noch schöner (was das eigentlich wichtige wäre) in ein Frame und dann erst das Frame in die Form einfüge, dann habe ich ein fröhliches geflacker beim Scrollen. Da kann ich die doubleBuffered-Eigenschaft vom Frame oder Panel setzen, wie ich will - das interessiert Delphi leider gar nicht. Ideen? Ich hab keine mehr. :) Der Vollständigkeit halber: Es geht um Delphi aus dem BDS2006. Läuft jetzt gerade unter Vista, was aber hoffentlich nicht den Fehler auslöst...? Danke schon mal... Bis denn Bbommel |
Re: Flackern trotz doubleBuffered:=true
Moin,
mit einigem Ausprobieren bin ich eben selbst über die Lösung gestolpert: Der Schuldige war das XPManifest, welches ich in mein Programm eingebunden habe. Einige Komponenten werden dadurch wohl anders neugezeichnet, so dass ein DoubleBuffered:=true alleine keine Wirkung mehr hat. Bei der Komponente, auf der das PaintBox-Objekt liegt (in meinem Fall ist das immer ein Panel) muss die Eigenschaft PaintBackground:=false gesetzt werden - dann klappts auch ohne Flackern. Ich hoffe, das hilf in Zukunft noch anderen weiter. :) Auf die Lösung kam ich durch diese Diskussion in einer Borland-Newsgroup: ![]() Bis denn Bommel |
Re: Flackern trotz doubleBuffered:=true
Zitat:
DoubleBuffered macht sich gar nicht bemerkbar. Die Property PaintBackground (im Link wird ParentBackground genannt) gibt es bei mir in D6 offensichtlich nicht. Ich kann auch keinen Unterschied mit XP Manifest und ohne sehen. Hat jemand noch eine andere Idee, wie ich das Flackern wegbekomme? Grüße, Messie |
Re: Flackern trotz doubleBuffered:=true
Zitat:
Bis denn Bommel |
Re: Flackern trotz doubleBuffered:=true
Zitat:
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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