VO-XPorter improvements

This forum is meant for questions and discussions about the X# language and tools
Post Reply
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

VO-XPorter improvements

Post by Karl-Heinz »

Hi Chris,

1. i exported a aef and noticed a problem with icon and Bitmap resources

content of my Images.rc file

Code: Select all

 BitmapTest_40x40_4BMP Bitmap D:VOImagesBitmap3.bmp    <----

 IcoClip_cut Icon "ResourcesClip_cut.ICO"

 IcoEmail Icon "Resourcesemail.ICO"

 IcoKnopf1 Icon "ResourcesKnopf1.ICO"

 IcoKnopf2 Icon "ResourcesKnopf2.ICO"

 IcoKnopf3 Icon "ResourcesKnopf3.ICO"

 IcoKnopf4 Icon "ResourcesKnopf4.ICO"

 IconApply Icon D:VOImagesApply.ICO    <----

 IconDelete Icon D:VOImagesDelete.ICO     <------

 IcoTelefon Icon "ResourcesTelefon.ICO"
Three images are not copied to the "Resources" folder and the corresponding resources still point to the VO folder where the images are located. The problem seems to be the usage of the prefixes "Icon" and "Bitmap" in the class names. When i change in VO the class names to e.g.

Code: Select all

CLASS BmpTest_40x40_4BMP INHERIT Bitmap
CLASS IcoApply INHERIT Icon
CLASS IcoDelete INHERIT Icon
all images are copied, and in the images.rc all resources point to the "Resources" folder now.

2. Another point is the cctl6.man resource. The VO resource:

Code: Select all

RESOURCE CREATEPROCESS_MANIFEST_RESOURCE_ID RC_RT_MANIFEST %appwizdir%cctl6.man
is (here) translated to:

Code: Select all

 1 24 C:CAVO28Appwizcctl6.man
That works, but shouldn´t that be handled in this way ?

1. copy the cctl6.man file to the "Resources" folder
2. and create a resource file with this content

Code: Select all

 1 24 "Resourcescctl6.man"
Regards
Karl-Heinz
User avatar
Chris
Posts: 4927
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO-XPorter improvements

Post by Chris »

Hi Karl-Heinz,

Thanks for the reports, but unfortunately I could not reproduce either problem, both seem to work as expected here. Can you please send a sample .aef that shows those problems?
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
FFF
Posts: 1582
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

VO-XPorter improvements

Post by FFF »

Hi Karl-Heinz,
could that be related to the problem, that project export in Xide does not have icons in the export?
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

VO-XPorter improvements

Post by Karl-Heinz »

Hi Chris,

attached is a small aef to reproduce the mentioned problems. The settings.jpg shows the used XPorter settings. After the export, the content of the created images.rc and manifest.rc is still:

Code: Select all

 BitmapTest_40x40_4BMP Bitmap D:VOImagesBitmap3.bmp

 IcoClip_cut Icon "ResourcesClip_cut.ICO"

 IcoEmail Icon "Resourcesemail.ICO"

 IcoKnopf1 Icon "ResourcesKnopf1.ICO"

 IcoKnopf2 Icon "ResourcesKnopf2.ICO"

 IcoKnopf3 Icon "ResourcesKnopf3.ICO"

 IcoKnopf4 Icon "ResourcesKnopf4.ICO"

 IconApply Icon D:VOImagesApply.ICO

 IconDeLete Icon D:VOImagesDelete.ICO

 IcoTelefon Icon "ResourcesTelefon.ICO"

Code: Select all

 1 24 C:CAVO28Appwizcctl6.man
Regards
Karl-Heinz
Attachments
XPorterResources.ZIP
(113.38 KiB) Downloaded 80 times
User avatar
Chris
Posts: 4927
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO-XPorter improvements

Post by Chris »

Hi Karl-Heinz,

Thanks, I see the problem! But maybe what makes the difference is that the resources are located in D, while I do not have such a drive in my machine.. Will have a look into it and will get back to you.
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

VO-XPorter improvements

Post by Karl-Heinz »

Hi Chris,

in addition:

1. I´m using the XPorter setting

[x] DontGenerateEmptyFiles

but the export still creates an empty manifest.prg. Do you see the same behaviour ?


2. About the missing D: drive
.
i doubt that´s the problem. if the drive doesn´t exist VO asks you where to store the images. Either in the aef dir or in the newly created "C:voimages" folder. What happens when you add this icon class to the aef, export the aef and run the XPorter again. Note: The class name doesn´t use the prefix "Icon" but "Ico" !

Code: Select all

CLASS IcoApply INHERIT Icon
RESOURCE IcoApply Icon D:VOImagesApply.ICO  // <---- change the path to the path where the images are stored on your machine. 
METHOD Init(kLoadoption, iWidth, iHeight) CLASS IcoApply
	SUPER:Init(ResourceID{"IcoApply", _GetInst()},kLoadoption, iWidth, iHeight)
	
	RETURN SELF
In your images.rc you should see now:

Code: Select all

IcoApply Icon "ResourcesApply.ICO"
Regards
Karl-Heinz
User avatar
Chris
Posts: 4927
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO-XPorter improvements

Post by Chris »

Hi Karl-Heinz,

The empty file gets generated because of the way resource files are used in the X# project system of X# in VS, they become part of the file (module) in which they were included in VO. And since this file/module included a resource, this file has to be created even if it is empty. Maybe this can be prevented if you only export to XIDE format, but probably it's not worth it, as it's easy to simply delete the file after porting.

Regarding resources, the exporter copies the physical disk files from their folder, to the resources folder of the exported app, doesn't do it from the .aef file, in order to keep things simple. But I agree this most likely isn't the only cause of the problem, since obviously in your PC the folders and files in D: to exist, but you are still getting this is problem.

Will get back to you as soon as I look into it, just need to wait a bit for the head to stop boiling from the 40C+ we have here this week :)
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
User avatar
Chris
Posts: 4927
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO-XPorter improvements

Post by Chris »

Hi Karl-Heinz,

Finally a chilly day today with only 38C, so I could have a look into this :)

Fixed both problems, the one with the resource names starting with icon and bitmap was due to exactly what you suggested. Thanks for your reports!
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

VO-XPorter improvements

Post by Karl-Heinz »

Thanks Chris !

Today i installed on a new Laptop VS2019 :woohoo: i´ve tried the VO-SDI Template but i didn´t compile because the content of the "Standard SDI.Manifest.rc" file is

Code: Select all

1 24 C:cavo28sp4Appwizcctl6.man
After changing the content to

Code: Select all

1 24 "Resourcescctl6.man"
it works.

btw. There´s no such problem with the VO-MDI Template, but i noticed that such a resource statement also works.

Code: Select all

1 24 Resourcescctl6.man 
regards
Karl-Heinz
User avatar
Chris
Posts: 4927
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO-XPorter improvements

Post by Chris »

Thanks, Karl-Heinz, i see the problem, will change the template!
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
Post Reply