(page requirements)

GlobalMemoryStatus() to the rescue

"GetFreeSystemResources()" Win16 API function is no longer supported in Win32 API, but you can use "GlobalMemoryStatus()" to get even more memory related information:
 
var
  ms : TMemoryStatus;
begin
  ms.dwLength := SizeOf( ms );
  GlobalMemoryStatus( ms );
  with ms do
  begin
    //
    // now you can use any of 
    // the following parameters
    //

    // percent of memory in use
    {dwMemoryLoad}

    // bytes of physical memory
    {dwTotalPhys}

    // free physical memory bytes
    {dwAvailPhys}

    // bytes of paging file
    {dwTotalPageFile}

    // free bytes of paging file
    {dwAvailPageFile}

    // user bytes of address space
    {dwTotalVirtual}

    // free user bytes
    {dwAvailVirtual}
  end;
end;
Listing #1 : Delphi code. Download memstat (0.38 KB).
 
For example:
 
function GetMemoryTotalPhys : DWord;
var
  ms : TMemoryStatus;
begin
  ms.dwLength := SizeOf( ms );
  GlobalMemoryStatus( ms );
  Result := ms.dwTotalPhys;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageDlg(
    'total physical memory: ' +
    IntToStr( GetMemoryTotalPhys )
    , mtInformation, [mbOk], 0 );
end;
Listing #2 : Delphi code. Download memtotal (0.36 KB).
 
 
Applicable Keywords : Delphi, Delphi 2.x, Delphi 3.x, Functions, Win32
 
 
 
Copyright © 2009 Chami.com. All Rights Reserved. | Advertise | Created in HTML Kit editor