Jump to content
vmishka

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

Tools->Options->Language->Delphi->Library 

Share this post


Link to post
30 minutes ago, Gary said:

Compare your library path for 32 and 64 bit components

Tools->Options->Language->Delphi->Library 

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

×