AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Flackern trotz doubleBuffered:=true
Thema durchsuchen
Ansicht
Themen-Optionen

Flackern trotz doubleBuffered:=true

Ein Thema von Bbommel · begonnen am 27. Jun 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#1

Flackern trotz doubleBuffered:=true

  Alt 27. Jun 2007, 21:19
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
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#2

Re: Flackern trotz doubleBuffered:=true

  Alt 28. Jun 2007, 17:15
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: Bei Google-Groups zum Nachlesen.

Bis denn
Bommel
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Flackern trotz doubleBuffered:=true

  Alt 13. Jul 2007, 13:09
Zitat von Bbommel:
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: Bei Google-Groups zum Nachlesen.

Bis denn
Bommel
Ich wollte das nochmal aufwärmen, weil ich auch so ein Problem habe. Ich verwende zum Skalieren TFormResizer, der nacheinander die Größe aller Steuerelemente (wie auch Schriftgrößen etc.) beim Resize des Forms anpaßt.

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
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#4

Re: Flackern trotz doubleBuffered:=true

  Alt 13. Jul 2007, 13:23
Zitat von messie:
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.
Nur mal kurz zum ParentBackground: Du hast natürlich recht, die Eigenschaft heißt so und nicht paintBackground. War mein Fehler, weil ich wohl so sehr am Paint verzweifelt bin.

Bis denn
Bommel
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Flackern trotz doubleBuffered:=true

  Alt 13. Jul 2007, 13:31
Zitat von Bbommel:
Zitat von messie:
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.
Nur mal kurz zum ParentBackground: Du hast natürlich recht, die Eigenschaft heißt so und nicht paintBackground. War mein Fehler, weil ich wohl so sehr am Paint verzweifelt bin.

Bis denn
Bommel
Ich habe leider auch keine Eigenschaft ParentBackground

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz