TAdvToolBar freezing?

I updated from TMS VCL UI Pack 10.8.2.0 (2022-08-17) into TMS VCL UI Pack 10.8.4.0 (2022-10-20)

Since then, every time I open a window which uses TAdvToolBar, it freezes as if it enters an infinite loop somewhere. None of my own code has changed. If I disable that toolbar (which is used to show text editing such as bold/italic etc) and do just plain text which doesn't show the bar when the window is opened, it works without freezing.

Has there been a known issue with TAdvToolBar or buttons in it, which may cause such freezing between those two versions? It doesn't happen on all systems, but it does on some.

If this continues, I may need to drop using TMS altogether, I cannot risk my program being destroyed with TMS updates.

I have more and more users of my software reporting freezing thanks to the TMS component. Please examine what have you changed and please do it urgently, this cannot wait as the update has destroyed something in the component. I will downgrade and begin removing TMS component because I can't depend on your upgrade breaking thing so badly that it causes freezing in my software.

I should note that aside from the updated component, nothing has changed in my code, and earlier version works (mentioned above) works.

We are not aware of introducing this. We inspected code changes in the latest version but cannot see anything so far that could cause an infinite loop from the component itself.
We would need more details on how you use the component. Is this the TAdvToolBar on a TAdvDockPanel or on a TAdvToolBarPager for example?
Do you see the issue in any of our demo apps? Other hints how we can see/reproduce the problem here?

It has something to do with the width of the window and the TAdvToolBar clipping (removing buttons). At certain width where it can't fit all the buttons it just freezes (when the window is initially opened). When the width it sufficient it works (also, if the TAdvToolBar is entirely removed). I am removing my own code to see if I can narrow it down.

Again, is this on a TAdvDockPanel or TAdvToolBarPager?
Do you see the problem with any of our demos?
We retested this here with several test projects, making windows smaller than TAdvDockPanel or TAdvToolBarPager needed width but could so far not yet see a freezing situation here.

I have narrowed it down, I am creating a project file for C++ Builder which you'll be able to use... will report back soon.

Have fun with this code which will freeze TMS. Look at comments for ways to "unfreeze" which modify window width or modify how buttons are added to the control. Tested in C++ Builder 10.4.2, on a standard 96 DPI screen (it won't work if the screen is High DPI probably because it depends on the specific window width to reproduce).

Bug-TMS.zip (36.5 KB)

Any chance of taking a look into this bug now that you have the code to reproduce and fixing the bug?

Upon return from: https://entwickler-konferenz.de/

So, I should test this on 96DPI to reproduce the freeze?
So far on 96DPI I could not see the freeze here.

TMS-FreezeBug.zip (3.7 MB)

Yes, 96DPI and certain width where not all the buttons fit the window causes freezing. See the attached screen recording of the problem. And it happens in the latest 10.8.5.0 as well as 10.8.4.0.

And this is a screen recording of the exact same code, working after downgrading TMS to 10.8.2.0 which is the version which I have which worked successfully. Same, code, just TMS is different.

TMS-Works-In-10.8.2.0.zip (1.8 MB)

I tested this now multiple times with the latest version of TAdvToolBar but I can't get a freeze situation. This is on a 96dpi monitor.
I inspected the code differences between TAdvToolBar in v10.8.2.0 and v10.8.5.0 and while these are very minimal, I can't see anything in the differences that could lead to an infinite loop that causes a freeze.
The test app you sent, compiled as-is , without any chances to your code is here:
http://www.tmssoftware.net/public/advtoolbarfreeze.zip
Does this freeze on your system?

I can't run that because it has dependencies (cc32c250mt.dll)

Which C++ Builder version did you build this in? I built my executable in RAD Studio 10.4.2 - it has cc32c270mt.dll. Alexandria has - cc32c280mt.dll - so you must have used some older version.

I also tested building this on RAD Studio Alexandria 11.0.0 and it freezes the exact same way when the Width = 730; And also, when Width = 830; it works fine. Which width did you use? It freezes on 730, but not on 830! I can record the video of freezing on Alexandria, but it is pretty much the same like the video above.

So it doesn't seem to be related to the compiler, at least not these two versions.

I understand you may be busy, but can you please make this more urgent? This is a breaking bug, it completely makes the component unusable - in both RAD Studio 10.4.2 and Alexandria 11.0.0 (possibly newer versions of Alexandria too).

I am getting hammered by my own users who now cannot use the latest build of my software because of this freezing issue. I either have to downgrade TMS and not use the new OnValuePaste event (in TAdvListEditor, unrelated to this freezing issue), or start removing TMS toolbar component from my software altogether because new updates are obviously not usable any longer with this bug in it.

Please take notice:

  • downgrading to TMS VCL UI Pack 10.8.2.0 works (I can test other versions, but I don't have them)
  • it started with TMS VCL UI Pack 10.8.4.0 (I don't have versions between those 2 but I would be glad to test them if you send them).
  • it can be tested with the same code, just upgrading/downgrading TMS component causes the issue or removes it, without any changes in the code.
  • compiling is done in C++ Builder (RAD Studio Pro) 10.4.2 and also the same thing reoccurs in 11.0.0 Alexandria.

I hope this gives you enough info, and I am at your disposal to test any builds between TMS VCL UI Pack 10.8.2 and TMS VCL UI Pack 10.8.4 if you have them available.

I can provide any version from TMSVCLUIPackSetupReg 2021 01 14. But you must have a valid license.
I hope I won't break anything.

I've been paying customer with a valid license since 2014 and of course I have a valid license for the current versions. I just didn't archive any versions between 10.8.2 and 10.8.4. I can test with those in-between versions. But are you even TMS staff - am I now getting a support from another user and not from those who I paid to?

I spent hours already trying to reproduce your problem. With the project you sent, I could not reproduce this so far. It was tested on multiple machines and with multiple form width settings but the app always starts here without freezing. I also spent a considerable amount of time in source code comparisons between versions v1.8.2.0 and later versions but I could not see any evidence in the code that there could be endless loops.
I sent the compiled test app that works fine here.
If you need 10.8.3.0, we can send you this meanwhile.
If you have further details, steps, requirement info to help us reproduce, please send these. It is only when we can reproduce this that we can start investigating how to solve it.

Please send links to all versions between 10.8.2.0 and 10.8.4.0 - I will test all of them and report back.
So I need 10.8.2.1, 10.8.2.2, 10.8.3.0 and whatever was released between. I can then narrow it further down.

Is there a property which allows the toolbar NOT to remove buttons when sized, but instead to simply clip them out of the visible window (like the standard toolbar does)? I want to try that too, if that is available.

The freezing happens when you click the "Freeze" button to open a new window, not when you just start the app. I hope you did that. I recorded that in the video. I assume you did.

I can further test for versions higher than 10.8.2.0 and lower than 10.8.4.0 if you provide them - I don't have them - didn't update in that period. Otherwise I keep archives of all versions I update to.