![]() |
DoubleBuffered verunstaltet meine Form
Ich habe DoubleBuffered eingeschaltet, aber damit sieht meine Form hässlich aus, weil er manchmal nicht updatet.
Wie kann ich das Umgehen? |
Re: DoubleBuffered verunstaltet meine Form
Wenn du weißt, wann nicht neu gezeichnet wird, kannst du auf das ereignis reagieren und Form.Refresh aufrufen. Das sollte ein komplettes Neuzeichnen veranlassen.
|
Re: DoubleBuffered verunstaltet meine Form
Delphi-Quellcode:
Da bringts ein .Refresh nicht.
DoubleBuffered := true;
while (gbChangeLog.Top > 8) and (cbVisSkin.Checked) do begin gbChangeLog.Top := gbChangeLog.Top - 4; gbChangeLog.Height := gbChangeLog.Height + 4; Application.ProcessMessages; Sleep(20); end; DoubleBuffered := false; |
Re: DoubleBuffered verunstaltet meine Form
Wenn du DoubleBuffered am Ende des Code-Ausschnitts nicht wieder auf false setzt, wird es dann richtig neu gezeichnet?
|
Re: DoubleBuffered verunstaltet meine Form
Liste der Anhänge anzeigen (Anzahl: 1)
Nein :( Das ist sowieso ganz komisch, weil würde ich es am Programmstart machen, sähe doie Form teilweise durchsichtig aus :D (LOL)
Ich habe mal ein Beispiel angehängt... Und Außerdem soll er jedes mal (im while) neuzeichnen. |
Re: DoubleBuffered verunstaltet meine Form
Hmm, ist das ein Standard-Windows-Theme? Ich hab mit meinem MacOS-Milk-Theme manchmal auch gewisse Zeichenprobleme, die mit einem Standard-Theme nicht auftreten...
Davon abgesehen, bist du sicher, dass ein Refresh es nicht bringt? Sprich, einmal ausprobiert? Es sieht nämlich einfach so aus, als ob (zumindest bei der Groupbox) die Steuerelemente ohne Hintergrund neu gezeichnet wurden. |
Re: DoubleBuffered verunstaltet meine Form
Also ich hatte "form.refresh" mal drinne, mit dem gleichen Ergebnis...
|
Re: DoubleBuffered verunstaltet meine Form
Ich habe mich ein wenig mit der Problematik herumgeschlagen. Anscheinend handelt es sich um ein Windows- Bug: Die Zeichenfehler passieren nur, wenn man das XP-Manifest in das Projekt eingebunden hat, um Themes zu verwenden (Unit XPMan). Habe die Unit testweise rausgeworfen und die Darstellung (im alten Stil) hat super gefunzt.
Offenbar kann die neue XP-Rendering Engine nix mit Bitmaps anfangen :wall: Meine einzige Abhilfe bisher: Rahmen, Shapes, Groupboxen etc. selber zeichnen (Ereignis OnPaint abfangen). Standard- Windows- Elemente wie z.B. Eingabefelder flimmern so und so nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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