EtheaDev / IconFontsImageList

Four advanced components to simplify use of Icon Fonts as images and ImageList: TIconFontImage, TIconFontsImageCollection, TIconFontsVirtualImageList, TIconFontsImageList (for VCL and FMX). Full support for High-DPI apps. Rendering optimized with GDI+
Apache License 2.0
218 stars 55 forks source link

What happens if the font is updated on the end user's computer in a non-backward compatible way? #12

Closed edwinyzh closed 4 years ago

edwinyzh commented 4 years ago

As I understand it, IconFontsImageList uses the font installed on the end user's system to render the icon. Image this situation - today my program built with IconFontsImageList is deployed to the end user's system, 3 years later without updating the program, the user's system has a new version of Material Design Icons Desktop.ttf updated, is it possible that the icon rendering no longer works?

If yes, how to prevent that? Is it possible for us to use a standalone font installed in our EXE's folder like a standalone DLL?

Thanks!

carloBarazzetta commented 4 years ago

Read this page for any questions abount TTF Font and Deploy: https://github.com/EtheaDev/IconFontsImageList/wiki/Deploy-Applications With this font, when a new version is released, the icons remains in the same position. You can also don't install the font in the target system and load it at runtime as explained here: https://github.com/EtheaDev/IconFontsImageList/wiki/Deploy-VCL

edwinyzh commented 4 years ago

Read this page for any questions abount TTF Font and Deploy: https://github.com/EtheaDev/IconFontsImageList/wiki/Deploy-Applications With this font, when a new version is released, the icons remains in the same position. That's good, so it's the font author's responsibility to keep the font backward-compatible.

You can also don't install the font in the target system and load it at runtime as explained here: https://github.com/EtheaDev/IconFontsImageList/wiki/Deploy-VCL Actually the AddFontResourceWindows API will install the font to the system and publicly visible to other applications. And I found out that, we can AddFontResourceEx if we want to use our private copy of the font.