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