About half a year ago I blogged about the new SVG icon set from GlyphLab. Although it comes with thousands of icons in all flavors, sometimes there is a need for that one combination with a specific overlay that is missing in the set.
While there are solutions to use SVG icons directly in an TImageCollection, there are situations where you need to use PNG icons where no SVG version exists. If we could get different PNG and ICO sizes from an SVG icon, that would come in handy here.
Another point is the shear amount of images in the 46 MB large set. There are more than 4,200 SVG icons and each comes in three flavors. the majority are combinations of a base icon with several overlays. Spotting the icon you are looking for can be a bit time consuming with that and it still happens that the required combination is not included.
I thought it was a chance to get my feet wet with the internals of SVG and write an application closing these gaps. The goal was to take only the base icons (1210 at the time of writing) and the overlays (88) and combine them as needed. Hot and disabled flavors are generated on the fly and the results can be saved as SVG and/or selected sizes of PNG and ICO format. That way I could quickly get the icons I need for my current application in a dedicated subfolder of the project, where they are added to the VCS.
With some valuable help from Dave Wilkinson (GlyphLab) I was able to combine any base icon with any overlay. Using a color mapping provided by Dave creating the Hot and Disabled variations was not much more than a sequence of simple string.Replace calls. The clean structure of the SVG icons created by Dave simplified all these tasks a lot.
We had some thorough, partly controversial discussions about the UX of the app and Dave made some valuable feature requests and critics. One interesting is the inclusion of the icon set into the executable, simplifying the deployment a lot. Download and start the exe and you can create the icons you want.
It was also Dave who found the name: IconLab – fits perfectly in my eyes.
The app will be available shortly for all customers of Set-Eleven.
For all of you eagerly waiting for the interesting part of this article – here it is. In case you don’t know what I’m talking about, please read the introductory article first. Continue reading “ImageLists and High DPI – Part 2”
I think we have to face it: More and more systems are equipped with monitors capable of displaying in higher density and people expect that our apps support these higher resolutions. While not that often, but still significant, we can see multiple monitor systems with mixed density getting their share.
With the release of Delphi 11.2 I thought that it might be time to bite the bullet and empower one of my bigger apps for High DPI support. Some edge cases with not commonly used components and other unavoidable quirks were expected. Luckily I was able to fix all of them or at least found acceptable workarounds.
The big task I have already been aware of for quite some time were the image lists. Continue reading “ImageLists and High DPI”
Those looking for high quality SVG icons now have a new place to look. GlyphLab offers a new Windows 11 style icon set. All icons are delivered in SVG format, so can be converted to whatever resolution, color depths and format is needed.
I’m using GlyphLab stock icons since 2006 and have seen how they evolved over time. The new Set-Eleven definitely marks a new milestone here.
In case the stock icons don’t fully cover your needs, you can still opt for a custom icon design. Dave Wilkinson, founder and owner of GlyphLab, also happens to be the creator of the current MMX icons introduced in V15. We have been working together at a couple of projects in the past. His ability to catch the customers ideas and come up with on-the-point suggestions is remarkable. I can highly recommend Dave in case you ever have a need for custom icons.
Back to browsing the Set-Eleven icons now…
Sometimes actions inside an application need their time. From retrieving data from REST service or a database to scanning your hard disk for all files containing images, there are a plethora of things that can be time consuming. In case these tasks are executed in the main thread the application will probably become unresponsive and feels like frozen – to the user as well as to the operating system.
There is a good chance that one can solve this by moving the time consuming task into a thread. That is usually where the problems start creeping in. Continue reading “Async Tasks in VCL Projects”