` Printed Icetips Article

Icetips Article



Par2: Get version number from Version Resource Template
2005-08-15 -- Brent Stock
 
If you are referring to information from the cwVersionRes template, I have 
written a little extension to get date/version/build version information and to 
make it available at runtime.  This allows you to use the global variables 
where ever you want in your code - splash, about, window title etc.

Note: I put the a version date called "Date of Build" into the verUserValue1 
field from the cwVersionRes template to help keep track of that as well.

Here is my template - use it if you find it valuable, ignore it if not.  Note 
this is written for a specific application called PRISM so you may want to 
change the variable names to suit yourself.  I use it "as is" in other apps 
(the name does not matter to the app) and just keep the PRISM name, either way, 
it WORKS!

#!-----------------------------------------------------------------------
#EXTENSION(PRISMInformation,'PRISM Information'),PROCEDURE
#!-----------------------------------------------------------------------
#DISPLAY('Brent H. Stock')
#DISPLAY('')
#BOXED('Title:')
#PROMPT('Variable:',FIELD),%PRISMTitleField
#ENABLE(%PRISMTitleField)
#PROMPT('Value:',@s50),%PRISMTitle,REQ
#ENDENABLE
#ENDBOXED
#BOXED('Version:')
#PROMPT('Variable:',FIELD),%PRISMVersionField
#ENABLE(%PRISMVersionField)
#PROMPT('Use Version Information?',CHECK),%PRISMVersionCheck,AT(10)
#ENABLE(NOT %PRISMVersionCheck)
#PROMPT('Value:',@s10),%PRISMVersion,REQ
#ENDENABLE
#ENDENABLE
#ENDBOXED
#BOXED('Date Changed:')
#PROMPT('Variable:',FIELD),%PRISMDateField
#ENABLE(%PRISMDateField)
#PROMPT('Use Version Information Date?',CHECK),%PRISMDateCheck,AT(10)
#ENABLE(~%PRISMDateCheck)
#PROMPT('Use Today?',CHECK),%PRISMDateToday,AT(10)
#ENABLE(~%PRISMDateToday)
#PROMPT('Value:',@d17),%PRISMDate
#ENDENABLE
#ENDENABLE
#ENDENABLE
#ENDBOXED
#BOXED('Build:')
#PROMPT('Variable:',FIELD),%PRISMBuildField
#ENABLE(%PRISMBuildField)
#PROMPT('Use Version Information Build?',CHECK),%PRISMBuildCheck,AT(10)
#ENABLE(NOT %PRISMBuildCheck)
#PROMPT('Value:',@s10),%PRISMBuild
#DISPLAY('BUILD# changes automatically on each day of build')
#ENDENABLE
#ENDENABLE
#ENDBOXED
#!-----------------------------------------------------------------------
#AT(%WindowManagerMethodCodeSection,'Init','(),BYTE'),PRIORITY(0)
  #IF(%PRISMTitleField)
%PRISMTitleField='%PRISMTitle'
  #ENDIF
  #IF(%PRISMVersionField)
    #IF(%PRISMBuildCheck)
#IF(%CWVersion>=6000)
%PRISMVersionField='%verProdMajVer.%(FORMAT(((%verProdMinVer*10)+%verProdSubVer),@N02))'
#!%PRISMVersionField='%verProdMajVer.%verProdMinVer.%verProdSubVer'
#ELSE
%PRISMVersionField='%VIFileVersionMH.%(FORMAT(%VIFileVersionML,@N02))'
#END
    #ELSE
%PRISMVersionField='%PRISMVersion'
    #ENDIF
  #ENDIF
  #IF(%PRISMDateField)
    #IF(%PRISMDateCheck)
#IF(%CWVersion>=6000)
      #SET(%PRISMDate,DEFORMAT(%verUserValue1,@D17))
#ELSE
      #SET(%PRISMDate,%ProgramDateChanged)
#ENDIF
    #ELSE
        #IF(%PRISMDateToday)
          #SET(%PRISMDate,%ProgramDateChanged)
        #ENDIF
    #ENDIF
%PRISMDateField=%PRISMDate !%(FORMAT(%PRISMDate,@D17))
  #ENDIF
  #IF(%PRISMBuildField)
    #IF(%PRISMBuildCheck)
#IF(%CWVersion>=6000)
      #SET(%PRISMBuild,%verProdBuildNo)
#ELSE
      #SET(%PRISMBuild,%VIFileVersionLH*1000+%CurrentBuildNumber)
#ENDIF
    #ELSE
      #SET(%PRISMBuild,%ProgramDateChanged-72322)
    #ENDIF
%PRISMBuildField='%PRISMBuild'
  #ENDIF
#ENDAT



Printed May 5, 2024, 3:57 pm
This article has been viewed/printed 35122 times.