我启用了DELPHI的版本控制,但我如何得到DELPHI的版本号!

解决方案 »

  1.   

    看delphi的帮助,里面有版本号
      

  2.   

    晕,我是启用了PROJECT->OPTIONS->VERSION INFO中的版本控制,我想得到FILE VERSION
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);const
      InfoNum = 10;
      InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
    var
      S: string;
      n, Len, i: DWORD;
      Buf: PChar;
      Value: PChar;
    begin
      S := Application.ExeName;
      n := GetFileVersionInfoSize(PChar(S), n);
      if n > 0 then
      begin    Buf := AllocMem(n);
        Memo1.Lines.Add('VersionInfoSize = ' + IntToStr(n));
        GetFileVersionInfo(PChar(S), 0, n, Buf);
        for i := 1 to InfoNum do
          if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\' + InfoStr[i], Pointer(Value), Len) then
            Memo1.Lines.Add(InfoStr[i] + ' = ' + Value);
        FreeMem(Buf, n);
      end
      else
        Memo1.Lines.Add('No version information found');
    end;
    这是delphi帮助里面的例子
      

  4.   

    别人写的
    TSimpleVersion = record
        dwProductVersionMS: DWORD;
        dwProductVersionLS: DWORD;
      end;
    function GetBuildInfo(FName: string): TSimpleVersion;             //获得版本信息函数
    var
      VerInfoSize: DWORD;
      VerInfo: Pointer;
      VerValueSize: DWORD;
      VerValue: PVSFixedFileInfo;
      Dummy: DWORD;
    begin
      VerInfoSize := GetFileVersionInfoSize(PChar(FName), Dummy);
      GetMem(VerInfo, VerInfoSize);
      GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
      VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
      with VerValue^ do
      begin
        Result.dwProductVersionMS := dwFileVersionMS;
        Result.dwProductVersionLS := dwFileVersionLS;
      end;
      FreeMem(VerInfo, VerInfoSize);
    end;