function DisplayRam: string;
var
Info: TMemoryStatus;
begin
Info.dwLength := SizeOf(TMemoryStatus);
GlobalMemoryStatus(Info);
Result := Format('%d MB RAM', [(Info.dwTotalPhys shr 20) + 1]);
end;
пример 2
Code:
function Physmem: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalPhys div 1024);
end;
function PhysmemFree: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailPhys div 1024);
end;
function MemLoad: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwMemoryLoad);
end;
function TotalPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalPageFile div 1024);
end;
function AvailPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailPageFile div 1024);
end;
function VirTotPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalVirtual div 1024);
end;
function AvailVir: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailVirtual div 1024);
end;
пример 3
Code:
uses
Windows;
function TMyApp.GlobalMemoryStatus(Index: Integer): Integer;
var
MemoryStatus: TMemoryStatus
begin
with MemoryStatus do
begin
dwLength := SizeOf(TMemoryStatus);
Windows.GlobalMemoryStatus(MemoryStatus);
case Index of
1: Result := dwMemoryLoad;
2: Result := dwTotalPhys div 1024;
3: Result := dwAvailPhys div 1024;
4: Result := dwTotalPageFile div 1024;
5: Result := dwAvailPageFile div 1024;
6: Result := dwTotalVirtual div 1024;
7: Result := dwAvailVirtual div 1024;
else
Result := 0;
end;
end;
end;
Вы спрашиваете, как получить размер физически установленной памяти в Delphi.
Все три примера, которые я предоставил, корректно выполняют эту задачу, но я дам краткое резюме и некоторые дополнительные комментарии для каждого из них:
Этот пример имеет несколько функций, которые получают различные статистики памяти, включая размер физической памяти (в МБ).
Пример 3
functionTMyApp.GlobalMemoryStatus(Index:Integer):Integer;varMemoryStatus:TMemoryStatus;beginwithMemoryStatusdobegindwLength:=SizeOf(TMemoryStatus);Windows.GlobalMemoryStatus(MemoryStatus);caseIndexof1:Result:=dwMemoryLoad;// процент загрузки памяти2:Result:=dwTotalPhysdiv1024;// размер физической памяти (в МБ)3:Result:=dwAvailPhysdiv1024;// доступная физическая память (в МБ)...end;end;end;
Этот пример определяет метод, который принимает индекс в качестве входного параметра и возвращает соответствующую статистику памяти. Функция GlobalMemoryStatus используется для получения статуса памяти, а затем запрошенная статистика возвращается.
В целом, все три примера используют функцию GlobalMemoryStatus для получения статистик памяти, а затем форматируют или конвертируют результаты в строку, представляющую размер физически установленной памяти (в МБ).
Надеюсь, это поможет! Пожалуйста, дайте мне знать, если у вас есть какие-либо дополнительные вопросы.
Получить размер физической установленной памяти можно с помощью функции GlobalMemoryStatus из библиотеки Windows, которая возвращает структуру TMemoryStatus, содержащую информацию о состоянии памяти.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.