I just upddated from 7.9.1.0 to 8.5.1.0, and now my TAdvToolBar is dropping the left most TAdvGlowButton or it is dropping the left most TAdvToolBarSeparator.
In the text I said left most... but I meant right most as said in the topic
What screen DPI do you use?
I use a Dell ultrawide, 3440x1440 for development (the PixelsPerInch setting on the form is 96). I've tried with and without a manifest entry for High DPI aware with no difference. Even copy and pasted the toolbar to a new VCL app with no manifest and nothing else that might influence the presentation. I normally have been running without the High DPI setting due to issues I was having a while back with your v7.
I could not reproduce this here so far.
This is our demo app where you the toolbar position is correct and also buttons on the toolbar.
I don't know offhand, but some of the toolbars come out OK, but others not. You can download my demo from http://whispersolutions.com/downloads/ToolbarDemo.zip
I have retested this here but could not see an issue:
If I delete the saved UnDockedAdvToolBars registry entries that saves the positioning/sizing etc, there is no problem. So it looks like v7's registry entries are messing up v8's positioning/sizing. Any idea how I can fix that? Customer's are not going to like me if they have to reset all their toolbar settings after updating to our next version.
It looks like something is turning off some of the toolbar items for no good reason. Example:
Same thing happens in reverse. v7 will turn off some of the entries from the v8 written registry entries and get messed up.
Other than DPI handling, I cannot see a reason for this.
Can you verify that in AdvToolBar.pas the global variable ADVToolBarDPI_Scale is equal to 1?
Yes:
When this variable is 1.0, I cannot see a reason for the displacement.
Right. The problem exists between versions, not the same version. I can bring up the app over and over again as long as I don't switch versions. If I run v8 and all are turned on but then run v7, some get turned off. Likewise if I started with v7 with all of them on, then run v8, some get turned off. If I stay within the same version, there is no problem. What I face is when my customers upgrade to our next version, some of the toolbar buttons are going to get turned off because of this version switch. It is almost like there is some logic that thinks the toolbar size has changed so it turns some off. Both v7 and v8 behave the same way but they don't like whatever the other wrote to the registry.
The latest version has improvements for handling high DPI so that can cause that values persisted before high DPI was taken in account are not accurate for the new situation where high DPI is taken in account. There is no straightforward solution to automagically transform old v7 values not taking high DPI in account to a v8 situation with high DPI. I'd suggest to do a one-time clear of the persisted values in case of an upgrade from v7 to v8.
OK, I can do that but I don't want to. Consider that I don't know what version they currently have. If I blindly reset the persisted values every time a user installs our software, I wont have any happy customers. The next version was possibly going to allow users to turn on/off selected buttons. Also, sometimes users want to rollback to a previous version. Since v7 also is turning off buttons from v8 persisted values, they would be screwed.
I may save the persisted values to a new "v8" location so that it won't trash the v7 persisted values. I'll see if that resolves this... effectively doing what you suggested.
Unfortunately this didn't help.
what exactly is meant with "changing size causes..." ?