File: reaboutunit.pas

package info (click to toggle)
lazarus 2.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 214,460 kB
  • sloc: pascal: 1,862,622; xml: 265,709; cpp: 56,595; sh: 3,008; java: 609; makefile: 535; perl: 297; sql: 222; ansic: 137
file content (104 lines) | stat: -rw-r--r-- 2,242 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
unit reAboutUnit; 

{$mode objfpc}{$H+}

interface

uses
  LazUTF8, Forms, ButtonPanel, StdCtrls, versionresource;

type

  { TreAboutForm }

  TreAboutForm = class(TForm)
    ButtonPanel1: TButtonPanel;
    lblLicense: TLabel;
    Label2: TLabel;
    lblBuildDate: TLabel;
    lblFPCVersion: TLabel;
    lblLCLVersion: TLabel;
    lblTargCPU: TLabel;
    lblTargetOS: TLabel;
    lblWidgetName: TLabel;
    ListBox1: TListBox;
    lblAppName: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    procedure ParceVersionInfo(V:TVersionResource);
  public
    { public declarations }
  end; 

var
  reAboutForm: TreAboutForm;

const
  appBuildDate = {$I %DATE%};
  TargetOS = {$I %FPCTARGETOS%};
  fpcVersion = {$I %FPCVERSION%};
  TargetCPU = {$I %FPCTARGETCPU%};

implementation
uses reConstsUnit, resource, LCLVersion,
{$IFDEF WINDOWS}
  winpeimagereader
{$ELSE}
  elfreader
{$ENDIF}
;

{$R *.lfm}

{ TreAboutForm }

procedure TreAboutForm.FormCreate(Sender: TObject);
var
  Res:TResources;
  i:integer;
  Reader:TAbstractResourceReader;
  V:TVersionResource;
begin
  Caption:=sAbout;
  lblTargCPU.Caption:=sLCLVersion + lcl_version;
  lblBuildDate.Caption:=sBuildDate + appBuildDate;
  lblLCLVersion.Caption:=sLCLVersion + LCLVersion;
  lblFPCVersion.Caption:=sFpcVersion + fpcVersion;
  lblTargCPU.Caption:=sTargetCPU + TargetCPU;
  lblTargetOS.Caption:=sTargetOS + TargetOS;
  lblAppName.Caption:=sResourceExplorer;
  lblWidgetName.Caption:=LCLVersionStr;
  lblLicense.Caption:=sLicense;

  ListBox1.Items.Clear;
  {$IFDEF WINDOWS}
  Reader:=TWinPEImageResourceReader.Create;
  {$ELSE}
  Reader:=TElfResourceReader.Create;
  {$ENDIF}
  Res:=TResources.Create;
  Res.LoadFromFile(ParamStr(0), Reader);
  for i:=0 to Res.Count-1 do
  begin
    if Res[i] is TVersionResource then
      V:=Res[i] as TVersionResource;
  end;
  if Assigned(V) then
    ParceVersionInfo(V);
  Res.Free;
  Reader.Free;
end;

procedure TreAboutForm.ParceVersionInfo(V: TVersionResource);
var
  i,j:integer;
begin
  for i:=0 to V.StringFileInfo.Count-1 do
  begin
    for j:=0 to V.StringFileInfo[i].Count-1 do
      ListBox1.Items.Add(SysToUTF8(V.StringFileInfo[i].Keys[j])+' = ' + SysToUTF8(V.StringFileInfo[i].ValuesByIndex[j]));
  end;
end;

end.