Descobrindo uso memória ram
Segue abaixo código fonte utilizado para calcular a mémoria ram total, ocupada e livre.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Gauges;
type
TMemoriaRam = record
RAMGauge : integer;
RAMOcupada : double;
RAMLivre : double;
RAMTotal : double;
procedure Clear;
end;
TForm1 = class(TForm)
RAMGauge: TGauge;
RAMTotalLabel: TLabel;
RAMLivreLabel: TLabel;
OcupadaRamLabel: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
function EspacoEmRAM: TMemoriaRam;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
lMemoria : TMemoriaRam;
begin
lMemoria := EspacoEmRAM;
RAMGauge.Progress := lMemoria.RAMGauge;;
OcupadaRamLabel.Caption := FormatFloat('###,###',lMemoria.RAMOcupada) + ' Kb';
RAMLivreLabel.Caption := FormatFloat('###,###', lMemoria.RAMLivre);
RAMTotalLabel.Caption := FormatFloat('###,###',lMemoria.RAMTotal);
end;
function TForm1.EspacoEmRAM:TMemoriaRam;
var
lMemoria : TMemoryStatus;
lLivre, lTotal : Double;
begin
Result.Clear;
GlobalMemoryStatus(lMemoria);
lLivre := (lMemoria.dwAvailPhys / 1024);
lTotal := (lMemoria.dwTotalPhys / 1024);
Result.RAMGauge := lMemoria.dwMemoryLoad;
Result.RAMOcupada := lTotal - lLivre;
Result.RAMLivre := lLivre;
Result.RAMTotal := lTotal;
end;
{ TMemoriaRam }
procedure TMemoriaRam.Clear;
begin
RAMGauge := 0;
RAMOcupada := 0;
RAMLivre := 0;
RAMTotal := 0;
end;
end.