Stéphane Wierzbicki 45 Posted November 27, 2023 Hello, We have painting issues with Delphi 12 compiled application. When run from RDS, menu is not correctly painted (see attached gif). There is no issue when running from a user's desktop. Anyone know hof to fix this ? Kind regards, Stéphane RDS Painting issues.zip Share this post Link to post
Kas Ob. 109 Posted November 27, 2023 31 minutes ago, Stéphane Wierzbicki said: This has nothing to do with Delphi, in fact this behavior is observed with every software do animation when used with RDP (RDS) the problem is simple, RDP screen core process will detect screen changes at some intervals, then send these parts, so it goes from full screen update to small part, these animation happens at high frame rate, so either RDP didn't capture the changes because it fall in between its frame capturing time and it did look like was minimum change and not worth updating, or due the high change rate the RDP throttled the update and skipped updating these parts. Recommendation : if possible detect RDP session (RDS as you called it) and disable all animation, this will enhance the fps and prevent what seems like wrong rendering, also if you have shadows, blurring and gradient colors then disabling them will enhance the speed a lot and require less traffic due the smaller images with higher compression without losing quality. Share this post Link to post
Stéphane Wierzbicki 45 Posted November 27, 2023 (edited) Hi Kas Ob. I'm sorry, but this is clearly a defect/change on the VCL side. The very same application compiled with Delphi 11.3 is working as expected. When compiled with Delphi 12, menu is messed. Edited November 27, 2023 by Stéphane Wierzbicki Share this post Link to post
dwrbudr 8 Posted November 27, 2023 Delphi 12 has some changes related to the DoubleBuffered property and RDM. Try to play with form's DoubleBuffered and the newly introduced DoubleBufferedMode properties. Share this post Link to post
Brian Evans 100 Posted November 28, 2023 (edited) It is an ActionMainMenuBar and the odd behavior, the mouse over highlighting makes menu entries darker and darker each time the mouse passes over them, is apparent in the Windows Sandbox after copying the project's EXE there. The form already has DoubleBuffered set to false which is all the new DoubleBufferedMode does to help over a RD connection. Changing the form width after the menu is darkened makes the menu redraw and it does so correctly. Looking at differences in Vcl.ActnMenus.pas between 11.x and 12 the draw code changed to add some styling and MDI support however reverting changes doesn't have any effect even in TCustomMDIMenuButton.Paint. A TMainMenu does not have the odd behaviour. Edited November 28, 2023 by Brian Evans Share this post Link to post
OlliWW 0 Posted February 27 Has anybody a solution for this problem? We're encountering this problem too with Delphi 12. The Quality Central is at this moment read only, so that you can't report any bugs to Embarcadero. Share this post Link to post
Brian Evans 100 Posted February 27 (edited) Was not able to find a solution. Did a build with Delphi 12 patch 1 and tested in a Windows Sandbox and the issue persists. Edited February 27 by Brian Evans Share this post Link to post
Morgan Christen 1 Posted July 26 My VPS clients reported flickering, which I have cured withe the following code: // Fix RDP flickering in Delphi 12 if application.InRemoteSession then if application.SingleBufferingInRemoteSessions then application.SingleBufferingInRemoteSessions := false; I apologise for not recording the source of this tip in the comment. I have since discovered that the progress bars from some 3rd parties I use are no longer refreshing as they should. 100% but not quit 100% :0) 1 Share this post Link to post