Articles

Use GetSystemInfo procedure with variable of TSystemInfo type for getting system information.

procedure TForm1.Button1Click(Sender: TObject);
var
  MySystem: TSystemInfo;
begin
  GetSystemInfo(MySystem);
  with Memo1.Lines do
  begin
    if (MySystem.wProcessorArchitecture=0) then
      Add('Intel architecture');
    Add(FloatToStr(MySystem.dwPageSize)+' Kb page size');
    Add(Format(
      'Lowest memory address accessible to applications and DLL - %p',
      [MySystem.lpMinimumApplicationAddress]));
    Add(Format(
      'Highest memory address accessible to applications and DLL - %p',
      [MySystem.lpMaximumApplicationAddress]));
    Add(IntToStr(
      MySystem.dwNumberOfProcessors)+' - number of processors');
    Add(FloatToStr(
      MySystem.dwAllocationGranularity/1024)+
      ' Kb - granularity with which virtual memory is allocated');
    case MySystem.wProcessorLevel of
      3: Add('Intel 80386 processor level');
      4: Add('Intel 80486 processor level');
      5: Add('Intel Pentium processor level');
    end;
  end;
end;