terça-feira, 3 de junho de 2008

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.

  © Blogger template 'Perfection' by Ourblogtemplates.com 2008

Back to TOP