[Delphi] Conoscere la versione dell’eseguibile.

Chi programma in Delphi si è accorto che, andando sul menu Project –> Options –> Version Info, si ha la possibilità di abilitare e conoscere la versione dell’eseguibile, includendo tali informazioni nell’applicazione stessa, l’unico neo è che per leggere tali dati dobbiamo costruirci una funzione ad-hoc.

Quindi come procedere?

Dopo aver messo il flag alla voce: Include version information in project, si abilita il check box  Auto-increment build number, inserire anche qui il segno di spunta, visualizzare il codice della form e inserire la seguente funzione:

function LeggiLaVersione(const NomeFile:string; out Versione, SottoVer, Release, Build: integer): Boolean;
var
  InfoSize, Wnd:DWORD;
  VerBuf: Pointer;
  FM: PVSFixedFileInfo;
  VerSize: DWORD;
begin
  Result := False;
  Versione := 0;
  SottoVer := 0;
  InfoSize := GetFileVersionInfoSize(PChar(NomeFile), Wnd);
  if InfoSize <> 0 then
  begin
    GetMem(VerBuf, InfoSize);
    try
      if GetFileVersionInfo(PChar(NomeFile), Wnd, InfoSize, VerBuf) then
        if VerQueryValue(VerBuf, ‘\’, Pointer(FM), VerSize) then
        begin
          Versione := FM.dwFileVersionMS div $10000;
          SottoVer := FM.dwFileVersionMS mod $10000;
          Release := FM.dwFileVersionLS div $10000;
          Build := FM.dwFileVersionLS mod $10000;
          Result := True;
        end;
        finally
          FreeMem(VerBuf);
     end;
   end;
end;

A questo punto dobbiamo dichiarare una seconda funzione, MiaVersione, quest’ultima ognuno potrà adattarla alle proprie esigenze:

function MiaVersione: string;
var
  v, sv, r, b: integer;
begin
  if LeggiLaVersione(Application.ExeName,v,sv,r,b) then
    Result := Format(’%d.%d.%d.%d’, [v,sv,r,b])
  else
    Result := ”;
end;

Per visualizzare il numero di versione dell’eseguibile basta inserire sulla form un campo di testo statico, nel mio esempio lo chiamo stVersione, dopo di che assegno all’evento FormCreate della form il seguente codice:
stVersione.Caption := MiaVersione;

Adesso non rimane che avviare l’applicazione e controllare il numero della versione riportata sul campo di testo.

Lascia una Risposta

Devi aver fatto il login per inviare un commento