-
Content Count
50 -
Joined
-
Last visited
-
Days Won
11
Everything posted by Carlo Barazzetta
-
A BIG and very strange BUG with High-DPI, VCL Style and Form Constraints
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Zip of Project and video demo. HighDPI_test.mp4 HighDPI-test.7z -
A BIG and very strange BUG with High-DPI, VCL Style and Form Constraints
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Thanks for the test, I've changed my secondo monitor to 144dpi but the problem is the same... I've upgraded my Windows10 version to 20H2 build but the problem still persist... -
A BIG and very strange BUG with High-DPI, VCL Style and Form Constraints
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
It's not a configuration problem because the application starts with correct DPI. At the first Minimize/Maximize receive a wrong DPI (the DPI of the secondary monitor), at the second Minimize/Maximize receive the correct DPI, and so on. But this appens ONLY if I'm using a VCLStyle and I have defined min constraint for the form and the current WindowsState is wsMaximized. -
Very strange that the presence of an empty ImageView in the same form affects the memory leak on another component (the TTreeNodes of the TTreeView) after changing styles!
-
No, I didn't open a bug report because in my case it was just a demo of a component with on-the-fly style modification on the form itself to show how the component reacted with different styles.
-
Yes, and I haven't found a solution ...
-
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
I don't understand ... (a fully armed SVG workshop?). If you don't feel the need to be able to see all the icons in a folder at a glance (Thumbnail mode) and be able to focus on one of those and look at the code on the fly (if it's SVG "clean" and "light") and don't try to see if that icon has colors that suit whatever theme the user chooses (dark or light) maybe we don't do the same job. If you prefer to use PowerToys instead of this solution developed in Delphi no one forces you to install it. I thought we were on a Delphi blog not for C# developers 😉 -
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
-
A new version (1.1) of SVGShellExtensions (Open-Source) has been released with a new component (a very useful SVG Text Editor) and a context-menu to export an SVG file to multiple PNG files. The new Setup is always available on the project page: https://github.com/EtheaDev/SVGShellExtensions The preview panel now has a slider to change the "backlight" of the image and more settings (such as text color attributes, theme, use of native Direct2D). The SVG Text Editor is useful for developers who need to change certain aspects of the icons (such as element colors) or try to change the SVG language and see an instant preview of the changes. Any suggestions for improving these components are welcome!
-
- explorer
- svgiconimagelist
- (and 4 more)
-
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
I know PowerToys and by browsing the C # sources I wanted to discover which SVG library they used for rendering the images. I thought they used Direct2D like SVGIconImageList does thanks to the implementation of @pyscripter but I notice that they "ask" to Edge Browser to render the SVG image, then they "capture" the result image and pass it to Windows Explorer ... not an elegant way to do this. In fact, the icons are not transparent but have a white background, the preview is quite slow and the preview panel is truly minimalist, it only shows the icon 😉 -
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
I will investigate... -
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
A new brick added to this story: https://github.com/EtheaDev/SVGShellExtensions A short video/demonstration: -
Help: preview of Svg image in Open-Dialog works only with VCLStyle active.
Carlo Barazzetta posted a topic in VCL
I have a question about a problem developing SVGIconImageList components: At design-time, the component editor cannot show the svg icon preview into the OpenDialog when loading files from "Add..." button.Compiling the demo, *and* and activating any VCLStyle, the icon is visibile: Disabling the VCL style, the preview is not visible also at run-time (I'm using Windows in dark mode): Could it be possible to have the same functionality at design time? It is very important to see the preview, during selection of svg files using the editor! Do I need some OpenDialog "hook" to have the preview also in "normal" style? Thansk for any suggestions. Carlo -
Help: preview of Svg image in Open-Dialog works only with VCLStyle active.
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Now with SVGShellExtensions (https://github.com/EtheaDev/SVGShellExtensions) the icons are visibile also into Internet Explorer as Thumbnails and Preview 😉 -
I've published an article about SVGIconImageList and IconFontsImageList:https://ethea.it/icons_in_delphi/
-
imagelist Looking for Icon Fonts support in Delphi for High-DPI and Themed app?
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
I've published an article about SVGIconImageList and IconFontsImageList: https://ethea.it/icons_in_delphi/ -
imagelist Looking for Icon Fonts support in Delphi for High-DPI and Themed app?
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
The transition to "Virtual" is now complete (released ver.2.3). Demos for 10.3 and 10.4 now uses native TVirtualImageList + TIconFontsImageCollection, and the TIconFontImage component can also be linked to VirtualImageList and IconFontsVirtualImageList (not only to IconFontsImageList). I'm searching for users and contributors to the project, expecially for older Delphi versions (because the components are compatible from Delphi 7 to current): it's very hard to me to maintain backward compatibility without help. From Delphi XE4 they uses GDI+ to render icons. -
Help: preview of Svg image in Open-Dialog works only with VCLStyle active.
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Ok, I've resolved, with this solution: I'm using a new class, implementing Execute without call the "inherited" metod, because the "magic" OpenDialog with the preview is activated by : Template := 'DLGTEMPLATE' but it's used only when TStyleManager.IsCustomStyleActive Using Template 'DLGTEMPLATE' also without CustomStyleActive shows always the dialog with the preview: TOpenPictureDialogSvg = class(TOpenPictureDialog) function TOpenPictureDialogSvg.Execute(ParentWnd: HWND): Boolean; begin Template := 'DLGTEMPLATE'; Result := DoExecute(@GetOpenFileName, ParentWnd); end; Not very elegant, but it works... -
Help: preview of Svg image in Open-Dialog works only with VCLStyle active.
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Yes! I've notice now that the two Dialog are quite different... but the call is always the same: OpenDialog.Execute. The TOpenDialog properties: object OpenDialog: TOpenPictureDialog Filter = 'Scalable Vector Graphics (*.svg)|*.svg' Options = [ofHideReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing] Left = 328 Top = 96 end -
imagelist Looking for Icon Fonts support in Delphi for High-DPI and Themed app?
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Actually the components do not install any fonts on purpose, to avoid thinking they only works with a specific font ... The demo uses a sample font, and also shows how to load it on-the-fly if it is not installed on the system. The downside is that when you open the demo you don't see the icons right away in the IDE and this could make you think that the component is not working properly... The other aspect is that any font loaded as a resource in the IDE affects the possibility of installing a new version on the same font in the system... I think that letting the developer choose to install the fonts he needs to use in his applications to use them with the components is the right and least invasive choice, don't you agree? -
imagelist Looking for Icon Fonts support in Delphi for High-DPI and Themed app?
Carlo Barazzetta replied to Carlo Barazzetta's topic in VCL
Yes, to develop the app the font must be installed on the system in order to use it in the IDE. Deploying the app you can do as you explain: I have similar code in the demo, which responds to the OnFontMissing event raised by the component if Font is not installed: //The "material desktop font is not installed into system: load and install now from disk LFontFileName := ExtractFilePath(Application.ExeName)+'..\Fonts\Material Design Icons Desktop.ttf'; if FileExists(LFontFileName) then begin {$IFNDEF D2010+} AddFontResource(PChar(LFontFileName)); {$ELSE} AddFontResource(PWideChar(LFontFileName)); {$ENDIF} SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); end -
I want to personally thank Vincent Parrett and Kyriakos Vlahos for the great contribution to the project! The official 2.0 version will be released shortly and also published on GetIt. Meanwhile, you can download the project from Github and report any problems. I'm also working on IconFontsImageList to add similar funcionalities, like a IconFontsVirtualImageList and IconFontsImageCollection...
-
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
The work on https://github.com/EtheaDev/SVGIconImageList continues, many issues have been solved. Now it's possible also to use native VirtualImageList (from 10.3 or 10.4) linked to a TSVGIconImageCollection! If you have an older Delphi version you can use TSVGIconsVirtualImageList. With the help of VincentParrent and pyscripter the components and the SVG library improve day by day ... Stay tuned! -
High-level interface-based encapsulation of Direct2D Svg functionality
Carlo Barazzetta replied to pyscripter's topic in Windows API
Today I've merged the great work made by @pyscripter and @Vincent Parrett into SVGIconImageList project and released 1.8 version. Now with the new components SVGIconImageCollection and SVGIconVirtualImageList it's possibile to build multi-form High-DPI app in a multi-monitor environment using a single ImageCollection shared by the forms. Many SVG rendering problems are now fixed! -
Native Svg parsing and painting in Windows
Carlo Barazzetta replied to pyscripter's topic in RTL and Delphi Object Pascal
Vincent, I can't process your pull request for a few days because I'm busy, but your job is very important to give flexibility to these components. Thanks for your support to the SVGIconImageList project.