Jump to content

Runtime error with TSVGIconImage compiled in a 64-bit VCL app

Recommended Posts

I am using Delphi 11.3 Alexandria Community Edition. I am working on an educational application to teach the 3-check chess variant. It will use Python4Delphi and the python-chess library. The python-chess library can generate an SVG image of the chessboard after each move. I am testing to see if the SVGIconImageList package, specifically the SVGIconImage component, will display the chessboard. I have a test app with an SVGIconImage, a Memo, and a Button on the form. The SVGIconImage is empty at start-up. The SVGIconImage is using Live Binding with the Memo component. The app compiles and runs correctly as a 32-bit application. I can copy and paste an SVG text into the memo and when I change the focus by clicking on the button, the chessboard is displayed.


If I compile as a 64-bit application, the form is never displayed and I immediately get a run-time access violation. The System Unit, line 18878, is displayed in the IDE, "Result := (Child <> nil) and Child.InheritsFrom(Parent);"


Is this because the default SVG Factory is 32-bit only? I tried using the first method described here (https://github.com/EtheaDev/SVGIconImageList/wiki/Choice-of-Factories) by adding an initialization section with "SetGlobalSVGFactory(GetSkiaSVGFactory);" but it will not compile because both SetGlobalSVGFactory and GetSkiaSVGFactory are undeclared (so, I guess I must be missing something in the uses section or I am not putting that statement in the correct place).


Is there a different reason for the access violation in a 64-bit compile? Can anyone help me get this running as a 64-bit VCL application?


Thank you for your help.

Run-time error when compiled as a 64-bit application.png

Test Application works as a 32-bit VCL Application.png

Share this post

Link to post

Compare your library path for 32 and 64 bit components


Share this post

Link to post
30 minutes ago, Gary said:

Compare your library path for 32 and 64 bit components


Thank you for your response, Gary. Attached are screenshots of the Library paths. Windows 64 points to Image32\source\ just as Windows 32 does, and Skia has both a Win32\Release and a Win64\Release. How does this information help me compile and run successfully as a Win64 application?

Windows 64-bit Library Path.png

Windows 32-bit Library Path.png

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now