AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Flimmern bei nicht klassischem XP-Style

Ein Thema von Alexander Roth · begonnen am 1. Feb 2007 · letzter Beitrag vom 1. Feb 2007
Antwort Antwort
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#1

Flimmern bei nicht klassischem XP-Style

  Alt 1. Feb 2007, 16:39
Hallo an alle,

also mein Problem ist folgendes: Ich habe ein Programm geschrieben, was eine Diagrammkomponente (RiverSoftAVG Charting Component Suite) benutzt. Wenn ich nun einen netten Schieberegler bewege, werden die Daten geändert.
Das entscheidende ist nun: Im klassischen XP Style geschieht das ohne Flimmern. (DoubleBuffered:=true)
Bei jeden anderen Style flimmert es aber richtig kräftig.

Noch wichtig ist, dass egal, ob ich das Manifest nicht drin habe, oder ob ich auf klassische Ansicht geschaltet habe, macht keinen Unterschied. Beides mal klappt es und sobald mein Programm nicht mehr in der klassischen Ansicht ist, flimmerts.

Wisst ihr woran das liegen könnte?
Wie kann man es beheben?


Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Flimmern bei nicht klassischem XP-Style

  Alt 1. Feb 2007, 17:48
WM_ERASEBKGND abfangen und dort "Message.Result := 1" ausführen ohne das inherited. Dann kommt es darauf an, ob die Komponente den gesamten Bereich füllt oder sich auf die in WM_ERASEBKGND gefüllten Zeichenfläche verlässt. Macht sie dies, dann werden einige Bereiche nicht neugezeichnet was zu unschönen Pixelresten führt. In diesem Fall müsstest du ebenfalls WM_PAINT und WM_PRINTCLIENT übschreiben und dort den Hintergrund füllen, da der zeitliche Abstand dort auf fast 0 schrumpft und nicht wie bei WM_ERASEBKGND einige Millisekunden beträgt.
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Flimmern bei nicht klassischem XP-Style

  Alt 1. Feb 2007, 18:17
Also erstmal danke für die Antwort.

Zitat von jbg:
Dann kommt es darauf an, ob die Komponente den gesamten Bereich füllt oder sich auf die in WM_ERASEBKGND gefüllten Zeichenfläche verlässt.
Sie füllt nicht die gesamt form wenn du das gemeint hast.

Zitat von jbg:
WM_ERASEBKGND abfangen und dort "Message.Result := 1" ausführen ohne das inherited. Dann kommt es darauf an, ob die Komponente den gesamten Bereich füllt oder sich auf die in WM_ERASEBKGND gefüllten Zeichenfläche verlässt. Macht sie dies, dann werden einige Bereiche nicht neugezeichnet was zu unschönen Pixelresten führt. In diesem Fall müsstest du ebenfalls WM_PAINT und WM_PRINTCLIENT übschreiben und dort den Hintergrund füllen, da der zeitliche Abstand dort auf fast 0 schrumpft und nicht wie bei WM_ERASEBKGND einige Millisekunden beträgt.
Zeichnet man damit sozusagen alles bis auch die Diagrammkomponente neu?


Also damit auch ich Normalsterblicher das verstehe: Wieso flimmert es bei nicht-klassisch?
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  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 22:48 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