How to Obtain System Info

unit SYSUnit;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1     : TForm1;
  SI        : TSystemInfo;
  OSVerInfo : TOSVersionInfo;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
 GetSystemInfo(SI);
 Case SI.dwProcessorType of
  386 : Label2.Caption := 'Intel 386';
  486 : Label2.Caption := 'Intel 486';
  586 : Label2.Caption := 'Intel 586';
 End;
OSVerInfo.dwOSVersionInfoSize := SizeOf(OSVerInfo);
GetVersionEx(OSVerInfo);
Case OSVerInfo.dwPlatformID of
 VER_PLATFORM_WIN32S        : Label3.Caption := 'Windows 3.x';
 VER_PLATFORM_WIN32_WINDOWS : Label3.Caption := 'Windows 95';
 VER_PLATFORM_WIN32_NT      : Label3.Caption := 'Windows NT';
End;
With OSVerInfo do
Begin
 Label4.caption := Format('%d.%d', [dwMajorVersion, dwMinorVersion]);
 Label5.Caption  := Format('%d', [LoWord(dwBuildNumber)]);
End;
end;
end.