Skip to content

Commit c1fd055

Browse files
committed
Merge branch 'release/5.30.0'
Release v5.30.0
2 parents fd9302b + 19473f8 commit c1fd055

7 files changed

Lines changed: 2017 additions & 402 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
*.a
2424
*.o
2525
*.ocx
26-
#*.res
26+
*.res
2727
*.tlb
2828
*.obj
2929

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Change Log for System Information Unit
22

3+
## v5.30.0 of 06 October 2024
4+
5+
+ Updated PRODUCT_xxx constant definitions to include all those defined in the Windows 11 24H2 SDK.
6+
+ Made the code in TPJOSInfo that gets the operating system edition name more robust. If the name can't be found in lookup tables then the registry is now checked too.
7+
+ Added new TPJOSInfo.BuildBranch method that returns the name of the repository branch from which the OS was released.
8+
+ Added new TPJOSInfo.DigitalProductID method that retrieves the OS's digital product ID.
9+
+ Added new methods to TPJOSInfo that get additional information about the Windows 10 & 11 "version" numbers (e.g. 1507 or 23H2). The methods are IsWindows10VersionOrLater, IsWindows11VersionOrLater, Windows10PlusVersion and Windows10PlusVersionName.
10+
+ Some TPJOSInfo and TPJComputerInfo methods were inlined.
11+
+ Refactored out a "with" statement.
12+
+ Removed commented out code from the PJSysInfo unit.
13+
+ Updated the demo projects:
14+
+ The FMX demo project was modified for compilation with Delphi 12 by updating the demo project options. main form properties and required units. (All changes were automatically created by the Delphi 12 IDE.)
15+
+ Both the VCL and FMX projects were updated to demonstrate all the new TPJSysInfo methods added in this release.
16+
+ Fixed a bug in the FMX demo program where string grids were not resizing with the main window.
17+
+ Updated `.gitignore` to ignore the `.res` files generated by Delphi 12.
18+
319
## v5.29.0 of 01 October 2024
420

521
+ Updated TPJOSInfo to detect various Windows 10 and 11 builds and revisions released in July to September 2024:

Demos/FMX/FMXDemo.dproj

Lines changed: 1042 additions & 8 deletions
Large diffs are not rendered by default.

Demos/FMX/FmFMXDemo.fmx

Lines changed: 161 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
object Form1: TForm1
22
Left = 0
33
Top = 0
4-
BorderStyle = bsSingle
54
Caption = 'Form1'
6-
ClientHeight = 480
7-
ClientWidth = 640
5+
ClientHeight = 508
6+
ClientWidth = 688
87
FormFactor.Width = 1920
98
FormFactor.Height = 1080
10-
FormFactor.Devices = [dkDesktop]
9+
FormFactor.Devices = [Desktop, iPhone, iPad]
1110
OnCreate = FormCreate
12-
DesignerMobile = False
13-
DesignerWidth = 0
14-
DesignerHeight = 0
15-
DesignerDeviceName = ''
16-
DesignerOrientation = 0
11+
DesignerMasterStyle = 0
1712
object Layout1: TLayout
18-
Align = alClient
19-
Height = 480.000000000000000000
20-
Width = 640.000000000000000000
13+
Align = Client
14+
Size.Width = 688.000000000000000000
15+
Size.Height = 508.000000000000000000
16+
Size.PlatformDefault = False
17+
TabOrder = 0
2118
object TabControl1: TTabControl
22-
Align = alClient
23-
Height = 472.000000000000000000
19+
Align = Client
2420
Padding.Left = 4.000000000000000000
2521
Padding.Top = 4.000000000000000000
2622
Padding.Right = 4.000000000000000000
@@ -29,72 +25,185 @@ object Form1: TForm1
2925
Margins.Top = 4.000000000000000000
3026
Margins.Right = 4.000000000000000000
3127
Margins.Bottom = 4.000000000000000000
28+
Size.Width = 680.000000000000000000
29+
Size.Height = 500.000000000000000000
30+
Size.PlatformDefault = False
3231
TabIndex = 0
3332
TabOrder = 0
34-
Width = 632.000000000000000000
33+
TabPosition = Top
3534
OnChange = TabControl1Change
35+
Sizes = (
36+
672s
37+
466s
38+
672s
39+
466s
40+
672s
41+
466s
42+
672s
43+
466s)
3644
object tiComputerInfo: TTabItem
37-
WordWrap = False
38-
Height = 23.000000000000000000
45+
CustomIcon = <
46+
item
47+
end>
48+
TextSettings.Trimming = None
3949
IsSelected = True
40-
Position.X = 1.000000000000000000
50+
Size.Width = 111.000000000000000000
51+
Size.Height = 26.000000000000000000
52+
Size.PlatformDefault = False
53+
StyleLookup = ''
4154
TabOrder = 0
4255
Text = 'TPJComputerInfo'
43-
Width = 103.000000000000000000
44-
object StringGrid1: TStringGrid
45-
Align = alClient
46-
Height = 441.000000000000000000
56+
ExplicitSize.cx = 50.000000000000000000
57+
ExplicitSize.cy = 50.000000000000000000
58+
object sgComputerInfo: TStringGrid
59+
Align = Client
60+
CanFocus = True
61+
ClipChildren = True
62+
Size.Width = 672.000000000000000000
63+
Size.Height = 466.000000000000000000
64+
Size.PlatformDefault = False
4765
TabOrder = 0
48-
Width = 624.000000000000000000
49-
AlternatingRowBackground = True
50-
ReadOnly = True
51-
RowCount = 100
5266
RowHeight = 21.000000000000000000
53-
ShowHorzLines = False
54-
ShowSelectedCell = False
55-
object NameCol: TStringColumn
67+
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
68+
OnResized = sgResized
69+
Viewport.Width = 652.000000000000000000
70+
Viewport.Height = 441.000000000000000000
71+
object StringColumn1: TStringColumn
5672
Header = 'Method'
57-
Height = 415.000000000000000000
73+
HeaderSettings.TextSettings.WordWrap = False
5874
ReadOnly = True
59-
TabOrder = 0
60-
Width = 185.000000000000000000
75+
Size.Width = 240.000000000000000000
6176
end
62-
object ValueCol: TStringColumn
77+
object StringColumn2: TStringColumn
6378
Header = 'Value'
64-
Height = 415.000000000000000000
65-
Position.X = 185.000000000000000000
79+
HeaderSettings.TextSettings.WordWrap = False
6680
ReadOnly = True
67-
TabOrder = 1
68-
Width = 400.000000000000000000
81+
Size.Width = 400.000000000000000000
6982
end
7083
end
7184
end
7285
object tiSpecialFolders: TTabItem
73-
WordWrap = False
74-
Height = 23.000000000000000000
86+
CustomIcon = <
87+
item
88+
end>
89+
TextSettings.Trimming = None
7590
IsSelected = False
76-
Position.X = 104.000000000000000000
77-
TabOrder = 1
91+
Size.Width = 113.000000000000000000
92+
Size.Height = 26.000000000000000000
93+
Size.PlatformDefault = False
94+
StyleLookup = ''
95+
TabOrder = 0
7896
Text = 'TPJSpecialFolders'
79-
Width = 104.000000000000000000
97+
ExplicitSize.cx = 50.000000000000000000
98+
ExplicitSize.cy = 50.000000000000000000
99+
object sgSpecialFolders: TStringGrid
100+
Align = Client
101+
CanFocus = True
102+
ClipChildren = True
103+
Size.Width = 672.000000000000000000
104+
Size.Height = 466.000000000000000000
105+
Size.PlatformDefault = False
106+
TabOrder = 0
107+
RowHeight = 21.000000000000000000
108+
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
109+
OnResized = sgResized
110+
Viewport.Width = 652.000000000000000000
111+
Viewport.Height = 441.000000000000000000
112+
object StringColumn5: TStringColumn
113+
Header = 'Method'
114+
HeaderSettings.TextSettings.WordWrap = False
115+
ReadOnly = True
116+
Size.Width = 240.000000000000000000
117+
end
118+
object StringColumn6: TStringColumn
119+
Header = 'Value'
120+
HeaderSettings.TextSettings.WordWrap = False
121+
ReadOnly = True
122+
Size.Width = 400.000000000000000000
123+
end
124+
end
80125
end
81126
object tiOSInfo: TTabItem
82-
WordWrap = False
83-
Height = 23.000000000000000000
127+
CustomIcon = <
128+
item
129+
end>
130+
TextSettings.Trimming = None
84131
IsSelected = False
85-
Position.X = 208.000000000000000000
86-
TabOrder = 2
132+
Size.Width = 73.000000000000000000
133+
Size.Height = 26.000000000000000000
134+
Size.PlatformDefault = False
135+
StyleLookup = ''
136+
TabOrder = 0
87137
Text = 'TPJOSInfo'
88-
Width = 68.000000000000000000
138+
ExplicitSize.cx = 50.000000000000000000
139+
ExplicitSize.cy = 50.000000000000000000
140+
object sgOSInfo: TStringGrid
141+
Align = Client
142+
CanFocus = True
143+
ClipChildren = True
144+
Size.Width = 672.000000000000000000
145+
Size.Height = 466.000000000000000000
146+
Size.PlatformDefault = False
147+
TabOrder = 0
148+
RowHeight = 21.000000000000000000
149+
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
150+
OnResized = sgResized
151+
Viewport.Width = 652.000000000000000000
152+
Viewport.Height = 441.000000000000000000
153+
object StringColumn3: TStringColumn
154+
Header = 'Method'
155+
HeaderSettings.TextSettings.WordWrap = False
156+
ReadOnly = True
157+
Size.Width = 240.000000000000000000
158+
end
159+
object StringColumn4: TStringColumn
160+
Header = 'Value'
161+
HeaderSettings.TextSettings.WordWrap = False
162+
ReadOnly = True
163+
Size.Width = 400.000000000000000000
164+
end
165+
end
89166
end
90167
object tiWin32Globals: TTabItem
91-
WordWrap = False
92-
Height = 23.000000000000000000
168+
CustomIcon = <
169+
item
170+
end>
171+
TextSettings.Trimming = None
93172
IsSelected = False
94-
Position.X = 276.000000000000000000
95-
TabOrder = 3
173+
Size.Width = 97.000000000000000000
174+
Size.Height = 26.000000000000000000
175+
Size.PlatformDefault = False
176+
StyleLookup = ''
177+
TabOrder = 0
96178
Text = 'Win32 Globals'
97-
Width = 90.000000000000000000
179+
ExplicitSize.cx = 50.000000000000000000
180+
ExplicitSize.cy = 50.000000000000000000
181+
object sgWin32Globals: TStringGrid
182+
Align = Client
183+
CanFocus = True
184+
ClipChildren = True
185+
Size.Width = 672.000000000000000000
186+
Size.Height = 466.000000000000000000
187+
Size.PlatformDefault = False
188+
TabOrder = 0
189+
RowHeight = 21.000000000000000000
190+
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
191+
OnResized = sgResized
192+
Viewport.Width = 652.000000000000000000
193+
Viewport.Height = 441.000000000000000000
194+
object StringColumn7: TStringColumn
195+
Header = 'Method'
196+
HeaderSettings.TextSettings.WordWrap = False
197+
ReadOnly = True
198+
Size.Width = 240.000000000000000000
199+
end
200+
object StringColumn8: TStringColumn
201+
Header = 'Value'
202+
HeaderSettings.TextSettings.WordWrap = False
203+
ReadOnly = True
204+
Size.Width = 400.000000000000000000
205+
end
206+
end
98207
end
99208
end
100209
end

0 commit comments

Comments
 (0)