System.SysUtils.TOSVersion
Delphi
TOSVersion = record
public type
TArchitecture = (arIntelX86, arIntelX64, arARM32, arARM64);
TPlatform = (pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux);
public const
AllArchitectures = [arIntelX86, arIntelX64, arARM32, arARM64];
AllPlatforms = [pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux];
private
class var FArchitecture: TArchitecture;
class var FBuild: Integer;
class var FMajor: Integer;
class var FMinor: Integer;
class var FName: string;
class var FPlatform: TPlatform;
class var FServicePackMajor: Integer;
class var FServicePackMinor: Integer;
{$IFDEF LINUX}
class var FPrettyName: string;
class var FLibCVersionMajor: Integer;
class var FLibCVersionMinor: Integer;
{$ENDIF LINUX}
class constructor Create;
public
class function Check(AMajor: Integer): Boolean; overload; static; inline;
class function Check(AMajor, AMinor: Integer): Boolean; overload; static; inline;
class function Check(AMajor, AMinor, AServicePackMajor: Integer): Boolean; overload; static; inline;
class function ToString: string; static;
class property Architecture: TArchitecture read FArchitecture;
class property Build: Integer read FBuild;
class property Major: Integer read FMajor;
class property Minor: Integer read FMinor;
class property Name: string read FName;
class property Platform: TPlatform read FPlatform;
class property ServicePackMajor: Integer read FServicePackMajor;
class property ServicePackMinor: Integer read FServicePackMinor;
{$IFDEF LINUX}
class property PrettyName: string read FPrettyName;
class property LibCVersionMajor: Integer read FLibCVersionMajor;
class property LibCVersionMinor: Integer read FLibCVersionMinor;
{$ENDIF LINUX}
end;
C++
struct DECLSPEC_DRECORD TOSVersion
{
public:
enum DECLSPEC_DENUM TArchitecture : unsigned char { arIntelX86, arIntelX64, arARM32, arARM64 };
enum DECLSPEC_DENUM TPlatform : unsigned char { pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux };
public:
#define TOSVersion_AllArchitectures (System::Set<TArchitecture, TArchitecture::arIntelX86, TArchitecture::arARM64>() << TArchitecture::arIntelX86 << TArchitecture::arIntelX64 << TArchitecture::arARM32 << TArchitecture::arARM64 )
#define TOSVersion_AllPlatforms (System::Set<TPlatform, TPlatform::pfWindows, TPlatform::pfLinux>() << TPlatform::pfWindows << TPlatform::pfMacOS << TPlatform::pfiOS << TPlatform::pfAndroid << TPlatform::pfWinRT << TPlatform::pfLinux )
private:
static TArchitecture FArchitecture;
static int FBuild;
static int FMajor;
static int FMinor;
static System::UnicodeString FName;
static TPlatform FPlatform;
static int FServicePackMajor;
static int FServicePackMinor;
private:
public:
static bool __fastcall Check(int AMajor)/* overload */;
static bool __fastcall Check(int AMajor, int AMinor)/* overload */;
static bool __fastcall Check(int AMajor, int AMinor, int AServicePackMajor)/* overload */;
static System::UnicodeString __fastcall ToString();
/* static */ __property TArchitecture Architecture = {read=FArchitecture};
/* static */ __property int Build = {read=FBuild};
/* static */ __property int Major = {read=FMajor};
/* static */ __property int Minor = {read=FMinor};
/* static */ __property System::UnicodeString Name = {read=FName};
/* static */ __property TPlatform Platform = {read=FPlatform};
/* static */ __property int ServicePackMajor = {read=FServicePackMajor};
/* static */ __property int ServicePackMinor = {read=FServicePackMinor};
private:
};
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
record struct |
public | System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Description
Describes the current operating system: platform and version.
Use TOSVersion to get information about the current operating system, such as:
- Platform (Windows, MAC OS X, iOS, Android, or Linux)
- Version
Other information:
- Architecture (Intel x86, Intel x64, ARM 32, or ARM 64)
- Installed service pack
Example:
Writeln(TOSVersion.ToString);
Possible output:
Windows XP Service Pack 3 (Version 5.1, Build 2600, 32-bit Edition)
You cannot create TOSVersion variables. TOSVersion represents static (global) data initialized at application start-up.
TOSVersion provides methods to check the version of the operating system. See the overloads of Check.
- Note: On the Linux platform, the output is the Kernel version, not the version of the operating system.