[Delphi] WindowsやAndroidのOS情報(バージョン等)取得

(開発言語)
  Embarcadero Delphi 10.4 (with Android SDK)
(動作確認)
  Windows 10(32bit)、Windows 10(64bit)、Windows 7(64bit)
  Nexus7 (Android 6)、SH-M06 (Android 10)

var
        OsInfo: string;
begin
    Memo1.Lines.Add( TOSVersion.ToString );
{$IFDEF MSWINDOWS}      //条件コンパイル:Windows用
    case TOSVersion.Major of
        5:  if TOSVersion.Minor=0 then OsInfo := '2000'
                                  else OsInfo := 'XP';
        6:  case TOSVersion.Minor of
                0  : OsInfo := 'Vista';
                1  : OsInfo := '7';
                2  : OsInfo := '8';
                3  : OsInfo := '8.1';
                else OsInfo := '??';
            end;
        10:  OsInfo := '10';
        else OsInfo := 'NT?';
    end;
    if TOSVersion.Architecture=arIntelX64 then
        OsInfo := format('%s (64bit)',[OsInfo])
    else
        OsInfo := format('%s (32bit)',[OsInfo]);
{$ENDIF}
{$IF DEFINED(ANDROID)}      //条件コンパイル:Android用
    case TOSVersion.Major of
         5:  OsInfo := 'Lollipop';
         6:  OsInfo := 'Marshmallow';
         7:  OsInfo := 'Nougat';
         8:  OsInfo := 'Oreo';
         9:  OsInfo := 'Pie';
        else OsInfo := '---';
    end;
{$ENDIF}
    case TOSVersion.Platform of
        pfWindows:
            Memo1.Lines.Add( 'Windows '+OsInfo );
        pfAndroid:
            Memo1.Lines.Add( 'Android ['+OsInfo+']' );
        pfMacOS:
            Memo1.Lines.Add( 'MacOS' );
    end;
    Memo1.Lines.Add( 'Build: ' + IntToStr(TOSVersion.Build) );
    Memo1.Lines.Add( 'Major: ' + IntToStr(TOSVersion.Major) );
    Memo1.Lines.Add( 'Minor: ' + IntToStr(TOSVersion.Minor) );
    Memo1.Lines.Add( 'Name : ' + TOSVersion.Name );
    Memo1.Lines.Add( 'Service Pack(Major): ' + IntToStr(TOSVersion.ServicePackMajor) );
    Memo1.Lines.Add( 'Service Pack(Minor): ' + IntToStr(TOSVersion.ServicePackMinor) );

      

・インターネット上の情報を参考に作成してます。
・コーディング内容は著作権フリーですが、使用する場合は自己責任にてお願いします。
・記述内容に問題点や改善点がありましたらこちらまでお願いします。

サンプル集の一覧に戻る