Windows 11 - DoubleBuffered Problem
Liste der Anhänge anzeigen (Anzahl: 1)
Windows 11 zeigt bei mir einige DoubleBuffered zeichnen Probleme: Insbesondere bei einer TComboBox und TEdit (siehe Demo source) anbei. Das ist auch schon im Form Designer so sichtbar. Auch beim MouseHover verändert sich was. Ich nutze D10.4.2.
Wenn ich DoubleBuffered der Form abschalte ist es ok (BTW: In jedem anderen Windows übrigens sowieso). Ähnlich verhält es sich wenn die TComboBox und TEdit in einer Groupbox sitzen - auch dort muss DoubleBuffered aus sein, damit die Elemente normal gezeichnet werden. Nun will ich aber DoubleBuffered behalten um Flackern zu vermindern. Kennt jemand das Problem (oder eine Lösung)? Kann man da hoffen das Windows 11 das behebt - ich denk das hätte doch schon längst das aufallen müssen und fürchte man will das so. |
AW: Windows 11 - DoubleBuffered Problem
Unter D11 Flackert nichts Doublebuffer überall an.
Es gibt auch kein Zeichnungs Problem. |
AW: Windows 11 - DoubleBuffered Problem
Hier auch nicht.
Da DevExpress ja zwangsweise bei fast allen Forms bescheuterter Weise das aktiviert ... aber zumindestens sah ich noch keine Probleme. |
AW: Windows 11 - DoubleBuffered Problem
Liste der Anhänge anzeigen (Anzahl: 3)
Ich war wohl nicht korrekt genug in der Beschreibung. Es geht nicht ums flackern, sondern das Zeichen der TCombobox und des TEdit. Die sehen bei DoubleBuffered einfach mies aus.
Anbei 2 Screenshots - Wrong und OK Anbei auch die Exe, wo ihr das hoffentlich selbst seht. |
AW: Windows 11 - DoubleBuffered Problem
Wie schon gesagt
Ich denke du hast ein anderes Problem deine EXE (deineExe.png) aus dem Archiv Issue.zip zeigt keine Auffälligkeiten. Grafiktreiber oder sonstiges Problem?. |
AW: Windows 11 - DoubleBuffered Problem
Bist du in Windows 11 (nicht Delphi 11)?
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Ach du meinst in Windows 11 nö hab ich nicht. Zu früh! Sorry Windows 11 habe ich überlesen . Mein Fehler. Müssen dann andere testen. Ich würde trotzdem mal versuchen einen Grafiktreiber kompatibel zu Win11 zu installieren. Nvidia hat da einen soweit mir bekannt ist. OK lösche die Anhänge dann wieder. |
AW: Windows 11 - DoubleBuffered Problem
Grafiktreiber sind unwahrscheinlich.
Ich seh es auf 2 total verschiedenen Computern: Einer VM und einen nagelneuen PC mit Windows 11 ausgeliefert. |
AW: Windows 11 - DoubleBuffered Problem
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Ein manueller kurzer Blick in die Exe zeigt meiner Meinung nach keine Auffälligkeiten. Ich habe leider aktuell keine Zeit für einen Test unter Windows 11. Ich schaue einmal, ob ich heute Abend dazu komme. |
AW: Windows 11 - DoubleBuffered Problem
Ich hatte ursprünglich deshalb auch den source code angehängt. Das ist einfach sicherer, aber dann müsst ihr es halt selbst kompilieren - da reicht auch Win10 dazu. Nur die exe muss dann in Win 11 laufen.
Dass Delphi Programme öfter von Virenscannern falsch erkannt werden nerft halt. Ich hätte die exe vielleicht signieren sollen, das hilft wohl schon einiges. |
AW: Windows 11 - DoubleBuffered Problem
So funktioniert es erst einmal als Test:
Delphi-Quellcode:
Schön ist das aber nicht. Erklären kann ich den Effekt aktuell nicht. Aus irgend einem Grund landet der Inhalt des einen Controls auf der Zeichenfläche des anderen...
TComboBox = class(Vcl.StdCtrls.TComboBox)
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND; end; T... = class(TForm) ... end; ... procedure TComboBox.WMEraseBkgnd(var Message: TWmEraseBkgnd); begin FillRect(Message.DC, ClientRect, Brush.Handle); inherited; end; Ich vermute, dass das daran liegt, dass Microsoft selbst das Neuzeichnen optimieren wollte. Ich habe aber aktuell nicht die Zeit das genauer zu prüfen. Diese Änderung könnte man natürlich durch Umbiegen der VMT auch auf alle Comboboxen anwenden usw. Zitat:
|
AW: Windows 11 - DoubleBuffered Problem
Vielen Dank @jaenicke. Das hilft bei der TCombobox super, das Problem ist weg.
Beim TEdit bleibt aber das Problem (schwarzer Trauerrand). Da hilft WMEraseBkgnd nicht. Das scheint an was anderen zu liegen, das dabei nicht geht. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Es ist die Sache der Entwickler von Delphi das Problem zu lösen. Würde mich mal interessieren ob das auch mit älteren Delphi Versionen so ausschaut. D2010 zum Beispiel. Falls ja dann ist eine ein Win11 Problem wenn nicht eins von Delphi. btw. Was machst du wenn du 20 Comboboxen hast? Überall WM_ERASEBKGND überschreiben? Na dann viel spaß dabei. Traurig was hier so abgeht. |
AW: Windows 11 - DoubleBuffered Problem
Also mit der Interposer class (wie beschrieben) muss es nur einmal eingefügt werden, es gilt dann für alle TComboboxen in dieser unit.
Und den Schuldigen zu suchen hilft mir einfach nicht weiter - ich muss es lösen (oder hoffen dass es sich von "alleine" behebt, aber das ist eher nicht hilfreich). |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Aber die Ursache liegt an der Konstruktion der DoubleBuffered Eigenschaft. Denn ohne das klappt ja alles und das Problem gibt es soweit ich bisher gelesen habe auch nur mit Anwendungen, die in Delphi (und C++ Builder?) geschrieben wurden. Und in anderen Anwendungen aus anderen Entwicklungsumgebungen flackert es nun weniger, sieht aber vollkommen korrekt aus. Von daher liegt es zwar an einer Änderung in Windows, aber die Ursache ist, dass Delphi um das Flackern zu reduzieren zu Tricks greift was die Behandlung der Windows Messages z.B. zum Überschreiben des Hintergrunds angeht. Deshalb bin ich echt gespannt wie es hier weitergeht. Microsoft hat ja angekündigt, dass alle Anwendungen aus Windows 10 kompatibel sein sollen und sie sich darum kümmern wollen. Zitat:
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Allerdings ist die Frage wozu du das DoubleBuffered benötigst, denn letztlich hebelst du das damit natürlich auch aus. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Ich denke es ist einfach noch viel zu früh um umzusteigen. Aber jedem das seine. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Und die Probleme, die ich selbst mit Windows 11 habe, waren mir ohnehin vorher schon klar, werden sich aber auch nicht ändern, weil Microsoft das halt anders sieht (Startmenü und Taskleiste aller Funktionen beraubt, ...). (Bzw. weil bei dem eigentlich mit Kacheln usw. gut gemachten und anpassbaren Startmenü zu viele gemeckert haben, weil die vielen zu intelligent und funktionell waren, darum wurde es halt nun auf dumm getrimmt.) Aber rein technisch funktioniert hier alles. Auf das Problem mit DoubleBuffered bin ich ja nur hier im Forum aufmerksam geworden, selbst habe ich keine Probleme bisher. |
AW: Windows 11 - DoubleBuffered Problem
Ich sehe das auch aus Kundensicht: Ich weiß nicht wer wann umsteigt. Ich arbeite auch noch nicht mit Windows 11 (und finde es auch nicht schöner als Win10, aber das ist meine persönliche Meinung).
Für die beschriebenen Probleme gibt es halt (schlechte) Workarounds und/oder ein hoffen auf Microsoft (aber bekommen die das überhaupt mal mit)? BTW: Ein weiterer Workaround ist alles in ein Panel zu legen. Dann sind all diese Probleme weg. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Leider funktioniert mein quality-Zugang seit einem Monat nicht mehr und vom Support kommt auch keine Reaktion. Ich kann daher aktuell keine Fehler melden. In deinem Fall würde ich aber direkt einen Supportfall aufmachen. Denn das ist ja nun wirklich ein schwerer Bug und reproduzierbar. |
AW: Windows 11 - DoubleBuffered Problem
Ich kann das nur als Issue bei Emba im QC erstellen.
Wie macht man einen Supportfall auf? |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
|
AW: Windows 11 - DoubleBuffered Problem
Naja die Antwort von Emba ist nicht sehr hilfreich:
I can reproduce the problem. Right now even Delphi 11 is not certified against Windows 11. This is planned in a future update. I shall log a bug for the problem and get back to you with the ID. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Löst zwar jetzt nicht direkt dein Problem aber das war zu erwarten das ein 1 Monate altes System nicht direkt volle Unterstützung bekommt. Damit muß man sich vorerst abfinden. |
AW: Windows 11 - DoubleBuffered Problem
Wichtig ist ja nur, dass Embarcadero nun direkt Kenntnis hat, sprich ein Supportmitarbeiter gesehen hat, dass das Problem existiert und insbesondere auch alte Versionen betrifft, für die es keine Fixes mehr geben wird. Denn dadurch bleibt ja nur der Weg über Microsoft zur Lösung und der wird dann hoffentlich beschritten. Das sollte das dem Mitarbeiter dort ja klar geworden sein.
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Ich hatte ähnlich gute Erfahrungen 8-) |
AW: Windows 11 - DoubleBuffered Problem
Nur noch mal als Hinweis am Rande: Diese Fehlzeichnungen hat man genauso in anderen Anwendungen die nicht in Delphi erstellt sind. Ist also nicht fair dass Delphi selbst in die Schuhe zu schieben.
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
In welcher Anwendung ist das denn noch der Fall? |
AW: Windows 11 - DoubleBuffered Problem
z.B. uaExpert von Unified Automation
Der About-Dialog sagt: Zitat:
Da pinseln sich auch aufgeklappte ComboBoxen ständig übereinander bis man nichts mehr erkennt. Unter Windows 10 hingegen ist alles in Ordnung. |
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Alle die Windows 11 in Verbindung mit D11 verwenden sollten sich halt noch etwas gedulden und hier nicht rumweinen. Ist jede Software direkt mit einem neuen Betriebssystem kompatibel? Denke mal nicht! D11 geht es nicht anders ist auch nur eine Software und die Entwickler brauchen Zeit um das entsprechend anzupassen. (Vorausgesetzt Windows 11 läßt es zu). Das einzige was man vorwerfen könnte ist das die Bereitstellung von D11 einfach noch zu früh war und jetzt alle Entwickler Betatester spielen müssen. PS: Habt ihr mal versucht euren Doublebuffer selbst zu erstellen für die Form? Und wie verhalten sich dann die Komponente wenn man das getan hat? |
AW: Windows 11 - DoubleBuffered Problem
Im allgemeinen werfe ich das nicht Delphi vor, aber dem Support.
Ich hatte schon erwartet, dass man das detailliert prüft und sich dann mit Microsoft verständigt, ob das evtl. ein Windows Bug ist bzw. in Windows verbessert werden kann. Leider scheint dem aber nicht so, da nur von allgemein von fehlender Kompatibilität die Rede ist. |
AW: Windows 11 - DoubleBuffered Problem
Application.SingleBufferingInRemoteSessions := False und es funktioniert wieder
|
AW: Windows 11 - DoubleBuffered Problem
Zitat:
Wie kann man nur so einen fundamentalen Change einfach komplett unter dem Radar einschieben? Über ASLR und HE-ASLR wurde wenigstens gesprochen... Ohne https://stackoverflow.com/questions/...flicker-in-rdp hätte ich noch tagelang ind er Anwendung alle Kombinationen von Doublebuffering-Settings (Am Parent, nicht am Child, am Child, nicht am Parent, mal an der FOrm, mal nicht, etc) durchgespielt und es hätte dennoch nichts gebracht... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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