KB4601319 and Html caption in TAdvSmoothImageListBox item

Dear Support Team,

We have detected an issue when displaying HTML text in a TAdvSmoothImageListBox item: Display, scroll in list ... are very very slow.
In our soft, the user experience is strongly damaged.

This occurs since the Februray Windows Update (KB4601319).
It seems that GdipDeleteFontFamily function has become very slow (more than 10 times slower than before).

As a consequence this impacts all the installed customers, whatever the software/component version.

Are you aware of this issue ?
If yes, have you a workaround or a feedback from microsoft ?

Best regards,

Nicolas DAVID

Are you sure you refer to TAdvSmoothImageListBox as we have seen this in TAdvSmoothListBox and have meanwhile worked on this and applied an improvement that we will be included in the next release.
We are not aware of issues with TAdvSmoothImageListBox.

Yes, I confirm TAdvSmoothImageListBox with Html in Item.Caption.Text

We could not see a problem here so far.
It is mostly the images that need most processing to render and not the text.
If a problem persists, please provide a sample source app with which we can reproduce the issue here so we can investigate.

No, it is not the image. It is during the HTML text display. As explained above, it is the GdipDeleteFontFamily that is 10 times slower since the KB4601319 update. So in order to reproduce you need to have the windows update installed and you need to have many items with html text in the TAdvSmoothImageListBOx, even without image. The scroll and the display is very slow. I will provide sample sources with last version of component.

I added 1000 items without image and with HTML caption, but could not see anything unusual.

Are you sure that your app links with the gdiplus.dll coming from the last windows update ?

Yes because we saw performance issues with TAdvSmoothListBox and did workarounds/improvements for this regression from Microsoft.

Are you testing with the improvement for TAdvSmoothListBox. Maybe this also fix TAdvSmoothImageListBox ?

The improvements done for TAdvSmoothListBox are only in TAdvSmoothListBox code.

AdvImageSmoothListBoxIssue.zip (25.9 KB)

Please find attached a small sample with which I reproduce the issue in Delphi 10.4.2 and the last TMS VCL UI component.
I also reproduced with Delphi 10.2 and TMS pack 9.0.2.
Some of our customers with older versions also reproduce.

Steps:

  • Start sample app
  • Click button to add 1000 items
  • Scroll / select items many times
    -> the refresh is very slow

Did my sample app help to reproduce?

I can see a performance difference between HTML formatted text and not HTML formatted text but not in the sense that is very slow, just somewhat slower.
We'll need to investigate if this can be accelerated with HTML despite what Microsoft did in its update.

With the sample app on my PC, if an item is selcted and if i select another one, it takes 3s to refresh the display and effctively select the new item. So yes, it is not huge. But when you work all the day with an application that take 3s for every selection, it appears annoying.

Anyway, the problem comes from gdiplus and I think Microsoft should fix this. My concern was only to raise the problem and to ask if you had a workaround (until Microsoft fix it) or if you had more feedback from Microsoft.

Thank you for your support.

3sec is much more than we see here.
You can somewhat further tune this by increasing the AnimationFactor value.