Jump to content
Sign in to follow this  
Stéphane Wierzbicki

Delphi 12 - Action Bar Menu painting issues with RDS

Recommended Posts

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

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 by Stéphane Wierzbicki

Share this post

Link to post

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

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 by Brian Evans

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this