On Mon, 2 Jan 2012, Antonio Fortuny wrote:

Hi folks.

First of all happy new year 2012.

Lazarus provides the possibility to include the program version in the project options. I've the ability to extract it at runtime using the WIndows core functions GetFileVersionInfoSize, GetFileVersionInfo and VerQueryValue.
I would like to know if there is an equivalent in Linux systems.


Yes. I use this code:

uses sysutils,resource, elfreader, versiontypes,versionresource;

Function GetProgramVersion (Out Version : String) : Boolean;

Var
  RS : TResources;
  E : TElfResourceReader;
  VR : TVersionResource;
  I : Integer;

begin
  Version:='';
  RS:=TResources.Create;
  try
    E:=TElfResourceReader.Create;
    try
      Rs.LoadFromFile(ParamStr(0),E);
    finally
      E.Free;
    end;
    VR:=Nil;
    I:=0;
    While (VR=Nil) and (I<RS.Count) do
      begin
      if RS.Items[i] is TVersionResource then
         VR:=TVersionResource(RS.Items[i]);
      Inc(I);
      end;
    Result:=(VR<>Nil);
    if Result then
      For I:=0 to 3 do
        begin
        If (Version<>'') then
          Version:=Version+'.';
        Version:=Version+IntToStr(VR.FixedInfo.FileVersion[I]);
        end;
  Finally
    RS.FRee;
  end;
end;

Michael.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to