![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите!!! Нужно сделать программу, которая определяет размер ОЗУ. Программа на Delphi Код написал по примеру, но не могу понять, что не так. Выбивает ошибку.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function GetMemoryTotalPhys: dword;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
memoryMB:=GetMemoryTotalPhys;
memoryMB:=((memoryMB div 1024)div 1024);
showmessage('RAM: '+ inttostr(memoryMB)+ ' MB');
end;
function TForm1.GetMemoryTotalPhys: dword;
var
recMemoryStatus: TMemoryStatus;
begin
// sets record size
recMemoryStatus.dwLength := SizeOf(TMemoryStatus);
// retrieves global memory status (WinAPI)
GlobalMemoryStatus(recMemoryStatus);
// sets result with total amount of memory
result := recMemoryStatus.dwTotalPhys;
end;
end.![]() |
|
#2
|
||||
|
||||
|
Где у тебя объявление переменной "memoryMB"?
P.S.: хм... В сообщении говорится, что у меня установлено 4ГБ памяти, а по факту 16ГБ. Что-то не то... Последний раз редактировалось Kailon, 27.06.2016 в 00:42. |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
||||
|
||||
|
Код:
unit UnitUtl;
interface
uses
Windows, Messages;
type
TMemoryStatusEx = record
dwLength: DWORD;
dwMemoryLoad: DWORD;
ullTotalPhys: Int64;
ullAvailPhys: Int64;
ullTotalPageFile: Int64;
ullAvailPageFile: Int64;
ullTotalVirtual: Int64;
ullAvailVirtual: Int64;
ullAvailExtendedVirtual: Int64;
end;
function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx): Boolean; stdcall; external kernel32;
function GlobalMemoryStatusExTotalPhys: Int64;
function GlobalMemoryStatusExAvailPhys: Int64;
implementation
function GlobalMemoryStatusExTotalPhys: Int64;
var
MemoryStatus: TMemoryStatusEx;
begin
Result:=-1;
MemoryStatus.dwLength:=SizeOf(TMemoryStatusEx);
if GlobalMemoryStatusEx(MemoryStatus) then Result:=MemoryStatus.ullTotalPhys;
end;
function GlobalMemoryStatusExAvailPhys: Int64;
var
MemoryStatus: TMemoryStatusEx;
begin
Result:=-1;
MemoryStatus.dwLength:=SizeOf(TMemoryStatusEx);
if GlobalMemoryStatusEx(MemoryStatus) then Result:=MemoryStatus.ullAvailPhys;
end;
end. |