在delphi中,如何知道自身的版本号,次版本号,编译号,这些是我在写about窗体所要用到的。求教。

解决方案 »

  1.   

    project->options-> version info
      

  2.   

    DELPHI中没有提供访问版本号的类  你可以找找WINAPI的关于文件属性的 可以通过API知道版本号
      

  3.   

    procedure ShowVersion;
    var ver:integer;//版本号
        major:integer;//主版本号
       minor:integer;//次版本号begin
      ver:=getversion();//获得版本号
      major:=ver and 255;//获得主版本号
      minor:=(ver and 255*256)div 256; //获得次版本号
      showmessage('系统版本号是:'+inttostr(ver)); //显示版本号
      showmessage('系统主版本号是:'+inttostr(major));//显示主版本号
      showmessage('系统次版本号是:'+inttostr(minor));//显示次版本号
    end;
      

  4.   

    sorry,看错了。
    获取自身程序版本号最简单的办法是使用第3方控件——Raize。
      

  5.   

    通常的做法是把版本号放到数据库里或Ini文件里,通过代码读出并显示。
      

  6.   

    http://www.qcdn.net/school/list.asp?Unid=2692
      

  7.   

    定一个版本信息结构:
    type
      PFixedFileInfo = ^TFixedFileInfo;
      TFixedFileInfo = record
         dwSignature       : DWORD;
         dwStrucVersion    : DWORD;
         wFileVersionMS    : WORD;  // 次版本号
         wFileVersionLS    : WORD;  // 主版本号
         wProductVersionMS : WORD;  // 建立次数(build)
         wProductVersionLS : WORD;  // 发行次数(release)
         dwFileFlagsMask   : DWORD;
         dwFileFlags       : DWORD;
         dwFileOS          : DWORD;
         dwFileType        : DWORD;
         dwFileSubtype     : DWORD;
         dwFileDateMS      : DWORD;
         dwFileDateLS      : DWORD;
      end; // TFixedFileInfo
    下面是取版本信息函数
    function FileInfo( const FileName :String ) : TFixedFileInfo;
    var
      dwHandle, dwVersionSize : DWORD;
      strSubBlock             : String;
      pTemp                   : Pointer;
      pData                   : Pointer;
    begin
       strSubBlock := '\';   // 取得文件版本信息的大小
       dwVersionSize := GetFileVersionInfoSize( PChar( FileName ), dwHandle );
       
       if dwVersionSize <> 0 then
       begin
          GetMem( pTemp, dwVersionSize );
          try
             //取文件版本信息
             if GetFileVersionInfo( PChar( FileName ),dwHandle,         
                                    dwVersionSize,pTemp ) then
                //查询文件版本信息
                if VerQueryValue( pTemp,PChar( strSubBlock ),
                                  pData,dwVersionSize ) then 
                   Result := PFixedFileInfo( pData )^;
          finally
             FreeMem( pTemp );
          end; // try
       end; // if dwVersionSize
    end;调用例子:var
        f1:string;
        x :TFixedFileInfo;
    begin
        f1 := Application.ExeName;
        x := FileInfo( f1 );
        ShowMessage( f1 +
                     #13#10'Version: ' + IntToStr( x.wFileVersionLS ) + '.' + 
                           IntToStr( x.wFileVersionMS ) +
                     #13#10'Release: ' + IntToStr( x.wProductVersionLS) +
                     #13#10'Build: '  + IntToStr( x.wProductVersionMS ) );end;
    希望对你有用。