Jump to content

Davide Angeli

  • Content Count

  • Joined

  • Last visited

  • Days Won


Davide Angeli last won the day on July 8 2021

Davide Angeli had the most liked content!

Community Reputation

20 Excellent

About Davide Angeli

  • Birthday 11/24/1971

Technical Information

  • Delphi-Version
    Delphi 11 Alexandria

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Davide Angeli

    Changing TToolButton image and using transparency

    As I wrote in the previous post, when I migrated to SVG there was no plenty of tools like now. I started with RiverSoftSVG component library and I based my internal libraries on that. In my applications, before SVG, I used PNG stored in resource files and loaded at runtime in TPngImageLists (it was all dinamic something like I'm doing now with SVG). To do a progressive migration I used RiverSoft to render SVG as PNG to mantain the same structure. RiverSoft was good enough to render material icons but has limitations on complex SVG so at the same time I used Delphi SVG (very good library it uses DirectX) to render complex logos and big SVG images. Now I've replaced Delphi SVG with Skia4Delphi and I'm planning to replace also RiverSoftSVG with it making Skia my internal reference for images and animations. Starting for scratch I think I will evaluate SVGIconImageList and maybe I will use it in the future because it has a similar approach to mine. When I started, I tested it but it was very crude and terrible in rendering certain icons. Now it has evolved exponentially and if I'm not mistaken now you can choose also Skia as SVG rendere engine. Skia and SVGIconImageList are open source, RiverSoftSVG and DelphiSVG are commercial tools.
  2. Davide Angeli

    Changing TToolButton image and using transparency

    I solved these issues abandoning tradional icons (BMP,PNG) to SVG. I started too from Google Material Design SVG icons but with a different approach because I needed icons not present in these libraries (some I drew, others I took from other online free libraries). So now I've several SVG sprites (some Google MD some customized) all designed 24x24 with black as the main color and I pick images from these sprites (for buttons, imagelists etc). SVG are pure XML so it's not difficult to change on the fly size or color (you have just to change an xml attribute or xml node), so, when I need SVG for dark theme or I need to use the sysop accent color I just change black stuff in the desired color. For me now is easy to reach something like this: I started these "revolution" on my apps about 4 years ago to approach both HIDPI monitors and dark mode and it was quite a lot of work; in that period SVG it wasn't as fashionable as now so I had to build some internal components myself to do this job. Now it seems that there are even opensource solutions that help to solve these problems. SVG is scalabale and is a text file. I don't like EMB approach of virtual image lists in which you have to provide several rastered icons for different sizes: Material desing base icons are 24x24 so if my app is 100% zoomed it uses this size, if the zoom is 150% ii switches to 36x36, if the zoom is 357% it uses 85x85 and so on, so the SVG images are rendered always of correct size for every zoom applied. I've categorized all my SVGs and each of them has a name like "confirm", "cancel", "exit", "print" etc. I've inerithed the components in which I need SVG stuff (buttons, images, ecc) adding a property in which I provide at design time just the SVG name and then all is solved at runtime as the program needs (style, size, zoom etc). In this way if I want to change/update an image I just modify the SVG sprite.
  3. Davide Angeli

    Your experience with custom styles - do they work well?

    I develop only VCL for Windows and my target are almost exclusively Win10 e Win11 (and Win2012 server+). Windows 7 practically disappeared from my customer PCs and Windows 8 never appeared. In my scenario I'm happily using styles: with latest Alexandria 11.x EMB provide at least 4 default VCL styles HIDPI compliant 2 for Win10 and 2 for Win11 (2 = light + dark). I decide in real time the style to use based on the SysOp and the user's choice to use the light or dark theme of Windows and I get an acceptable result and an UI compliant with that of the SysOp. Without styles in VCL its impossibile to create dark apps.
  4. Davide Angeli

    Are the jcl and jvcl libraries still alive?

    Already using git for internal use, it is actually very easy to interface with github. In a few minutes, following the advice, I was able to create a pull request containing some corrections that I had made locally and I saw that they have also already been integrated into the master branch by obones .
  5. Davide Angeli

    Are the jcl and jvcl libraries still alive?

    I don't know the others but I'm using this one (very good and well supported): https://www.syntevo.com/smartgit/
  6. Davide Angeli


    Now I'm switching to Skia (but using HTML Components too). In the past I've used this one that is also very good: https://www.bverhue.nl/delphisvg/ and this one (with some limitations): http://www.riversoftavg.com/svg.htm
  7. Davide Angeli

    Are the jcl and jvcl libraries still alive?

    Summurized in few words like Anders do it seems not really complicated. I will try it. I think you are right. In the specific case, the problem seems that there is no one who pulls the strings, so the risk is having dozens of pull requests that will never be integrated. It is diffcult to do when you have the perception that no contributors has time to dedicate like in this case...
  8. Davide Angeli

    Are the jcl and jvcl libraries still alive?

    I never used Github to contribute but it seems not so immediate to use... I want to create a pull request to post a couple of corrections on a jcl unit but I don't understand if I have to fork the project and then create the pull request from fork or if I could directly create a new branch on my local master and push it in same way (I m using SmartGit on local git repositories)...
  9. Davide Angeli

    Are the jcl and jvcl libraries still alive?

    uhm... ok good to hear that issue tracker is abandoned... so issues would be better to post directly on github. JCL seems quite static also on github. Just an example, till last year I was using JclSysInfo to get Windows version and it was very quick on updates but now at all there is no Win 2022 server recognition so I switched on standard Delphi functions.
  10. Hi all! I have always been using JCL/JVCL libraries in my Win32/64 VCL applications. Is anyone still keeping them alive? I opened some reports in the JEDI Issue tracker (also posting the possible solutions) but with desolation I see that in the last few months there are only new error reports and no one taking them in charge.
  11. Davide Angeli

    F2084 Internal Error: D33566

    IMHO it is always the same of this: https://en.delphipraxis.net/topic/4628-several-f2084-internal-error-on-delphi-1042/ It's not a D11.1 problem. This kind of problems (f2084 internal errors, av in dc32xxx.dll, ecc ) were introduced (or emphasized) at least in D10.4 if not in previuos versions. I'm now using 11.1 too and fighting with these issues every days. There are several reports on QC but they never solved the problem. In my case these problems increase exponentially working on a big project group containing several BPLs, DLLs and EXEs (all VCL), when I compile one of the BPLs that are used (statically or dynamically) by the other projects. In these scenario the crash is almost at every compile. Closing the IDE and restarting all works fine.
  12. Infact I solved in that way. The legacy code is not mine. That project use old libraries just 64bit compiled. One is Rave library (the sample is about it) and the other is Fibplus that has also old hard casts on pointers not always considering 64 bit pointers.
  13. Hi all, I had some trouble in the last days after updating from D11 to D11.1 and I want to share if could help some one (maybe someone already wrote about this). In a 64bit VCL program I'm using legacy code that before 11.1 worked without errors. In D11.1 Emb introduces new Windows PE security flags in linker options and in particular a couple of them related to ASLR (https://blog.marcocantu.com/blog/rad111_pe_security.html). These flags are enabled by default and in my case, on legacy code (bad written), leads to random access violations. For "bad" code I mean do hard cast on pointers for instance something like this: "pointer(integer(PrinterInfo) + SizeOf(TPrinterInfo4));". Disabling the new ASLR linker flags the win64 app works but I guess that should be better to refactor that kind of code.
  14. Davide Angeli

    Several F2084 Internal Error on Delphi 10.4.2

    You are completely right. I have done this successfully several times. As you say the problem is finding the time to devote considering that the problem occurs in a completely random way.