I know i touch a sensitive code but we can discuss about it.
Added TVisualCompont it is between TLCLComponent and and TControl, it has a properties and methods that have visual effect but still it unvisible at form. i will use it for BidiMode and ParentBidimode
TMenu, TPopupMenu, TScreen, TTrayIcon and TPopupNotifier and any component need bidimode , TTheme and TToolbar...
Now it can detect if the Component was inherited from TVisualComponent to make loop when BidiMode changed in the form/control.
Remove duplicating of implement the same code in both TControl and TMenu and every TComponent need the BidiMode.
I kept UseRightToLeftScrollBar in TControl
Added BidiMode to TApplication.
TApplicationProperties must *not* inherite it from TVisualComponent it is like TApplication have no ParentBidiMode
I used the forum for my patch, because i like to edit my posts, but i can use Mail-List if you wish.