Mega Code Archive

 
Categories / Delphi / Examples
 

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; 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;