|
Post by larrybtoys on Nov 20, 2023 1:04:36 GMT 1
What is the IDE manifest rsrc and is it needed in the compiled versions of programs?
|
|
|
Post by (X) on Nov 20, 2023 1:11:55 GMT 1
Sjouke addresses this:
I only have a vague understanding of 'manifest'... My short answer to your question. It is not required absolutely.
I found it affects the look of the application and the coder's ability to set custom colors for Frames and such.
If OFF, i.e: if you include $ManifestOff at the head of the your code, you can specify the color of the Frame caption else it reverts to Windows settings/preferences.
I noticed that while running the .exe version of a GFA-BASIC 32 for Windows program, if the manifest is left ON, meaning the $ManifestOff is NOT included, then, I am able to see the icons in a Treeview control, else, the Treeview icons don't appear.
While running the program from the IDE, it does not seem to matter if $ManifestOff is present or not, either way, I can see the Treeview icons.
|
|
|
Post by larrybtoys on Nov 20, 2023 1:21:35 GMT 1
I am wondering if this checkbox should be checked or not when compiling and how it will affect the compiled program. Attachments:
|
|
|
Post by (X) on Nov 20, 2023 1:24:02 GMT 1
If I am not mistaken, with $ManifestOff included in your code, the IDE deselects the 'Add Manifest Resource' automatically, I think you can select it manually if desired.
|
|
|
Post by (X) on Nov 20, 2023 1:27:06 GMT 1
I admit I've not researched this topic extensively. Bing states that manifest files are XML files and can be edited. I've just not needed to go down that rabbit hole yet.
|
|
|
Post by larrybtoys on Nov 20, 2023 1:33:07 GMT 1
Rabbit hole indeed. My thoughts without researching it further is that if you include the manifest resource by leaving the box checked the user of the .EXE will see the program how the programmer wanted them to see it. If it is not checked the user of the .EXE may not see everything how the programmer wanted it to be seen if they have some oddball settings in their windows version. Does this sound even remotely correct?
|
|
|
Post by (X) on Nov 20, 2023 1:35:34 GMT 1
From Help Doc... (You've probably already seen.)
The Manifest File and Common ControlsCommon Controls GFABASIC32 comes with many OCX Controls to allow input and output and these controls are underpinned by Windows' Common Controls library. From Windows XP onwards, Microsoft allowed access to two versions of its Common Controls library: version 5 which retained the appearance and functionality found in Windows 98/ME; and version 6, originally termed as XP Styles, which matches the controls to the themes and styles of whichever version of Windows a program is run on, as well as adding additional functionality. By default, Windows assumes any program will run using version 5, and GFABASIC32 is no different. If either the IDE or any program compiled by GFABASIC32 is run, all OCX controls will appear as they did in Windows 98/ME. Manifest Files To change the styles to those of Common Controls version 6, it is necessary to use a Manifest File. Manifest files can perform numerous tasks, but the file which is supplied with GFABASIC32 (see GfaWin32.exe.manifest) has only one task: to tell Windows to use Coomon Controls version 6 rather than the default version 5. To effect this, the Manifest file can either be in stand-alone form or embedded in the executable program itself. To create a stand-alone file, simply make a copy of the GFABASIC32's Manifest file, paste it into the folder which contains the executable file you wish to affect and change the Manifest's name to suit. For example, if you compile a program called 'program.exe', you would copy the GfaWin32.exe.manifest file into the same file as the compiled file and rename it 'program.exe.manifest'. From IDE version 2.40 onwards, there is an option on the Compile form (Project -> Compile/Build) to 'Add Manifest Resource'; this embeds a Manifest file into the executable, doing away with the need to create a stand-alone file. For those with earlier versions of the IDE, Peter Heinzig created a program here which does exactly the same thing. Known Issues There are a number of known issues where using a Manifest file does not make the desired transition from version 5 to version 6 of the Common Controls library. Some of the more common ones are: [Stand-alone only] If there a spaces in the filename of the executable - and thus in the accompanying stand-alone Manifest file - this can cause a failure; replacing the spaces in both files with underscores ('_') usually fixes this problem. Occasionally after a change to a compiled file or a Windows Update, controls can return to version 5; simply restarting the computer can, occasionally fix this problem. There are other issues which can arise with using Manifest files - they are generally Windows-wide rather than just GFABASIC32-specific - and they are dealt with in more detail in Sjouke Hamstra's blog here and here. {Created by James Gaite; Last updated: 03/03/2018 by James Gaite}
|
|
|
Post by (X) on Nov 20, 2023 1:39:54 GMT 1
I asked Bing: Can editing the manifest let the coder color the controls the way he wants?
|
|
|
Post by (X) on Nov 20, 2023 1:44:11 GMT 1
|
|
|
Post by larrybtoys on Nov 20, 2023 2:24:02 GMT 1
I guess since I do not want to add an additional manifest file to the root directory of my programs nor do I have any desire to modify the look of any windows objects within my programs I will simply leave this box checked when compiling programs to an .EXE
|
|
|
Post by dragonjim on Nov 20, 2023 6:21:44 GMT 1
Put simply, if you keep the box ticked then the Common Controls in your application will match those of your host OS (Windows XP, Vista, 7, 8, 10 or 11 - all part of the NT family of Windows); if not, then they will revert to Common Controls used in the now defunct 95/98/ME family of OSs.
The IDE uses a manifest by default (you can change this behaviour by renaming the manifest file in the Bin directory).
The 95/98/ME controls are more flexible when it comes to colour - for instance, you can use different colour command buttons. However, the main reason they are still supported is backward-compatibility with software written for the old platforms.
|
|
|
Post by (X) on Nov 21, 2023 20:16:29 GMT 1
Just to feed the curiosity, I looked up the contents of "GfaWin32.exe.manifest"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity processorArchitecture="*" version="0.0.0.0" type="win32" name="GfaWin32"/> <description>GFABASIC32</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly></dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> </assembly>
This is obviously a place where you can specify many aspects of your program's environment. A lot of this is over my head!
|
|
|
Post by larrybtoys on Nov 21, 2023 21:35:54 GMT 1
Most of it is above my pay grade...
|
|
|
Post by (X) on Nov 22, 2023 15:32:10 GMT 1
I didn't know what side-by-side refered to so, for those interested...
From BING
|
|