Memorystatus

Description

Mon tout premier programme après 2 jours de découverte de Delphi. Etude du TMemoryStatus et de la mémoire physique et virtuelle

Source / Exemple :


{===============================================================================
Code source : BEAUMONT Christophe
Version     : 1.0.0
Date        : 23 Février 2010

Etude 01 - Exemple d'utilisation d'une structure MemoryStatus qui contient les
informations sur l'état de la mémoire physique et virtuelle.
===============================================================================}

unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TTableau = class(TForm)
    Structure: TMemo;
    Separateur1: TBevel;
    Separateur2: TBevel;
    dwLength1: TLabel;
    dwMemoryLoad1: TLabel;
    dwTotalPhys1: TLabel;
    dwAvailPhys1: TLabel;
    dwTotalPageFile1: TLabel;
    dwAvailPageFile1: TLabel;
    dwTotalVirtual1: TLabel;
    dwAvailVirtual1: TLabel;
    dwLength2: TLabel;
    dwMemoryLoad2: TLabel;
    dwTotalPhys2: TLabel;
    dwAvailPhys2: TLabel;
    dwTotalPageFile2: TLabel;
    dwAvailPageFile2: TLabel;
    dwTotalVirtual2: TLabel;
    dwAvailVirtual2: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Tableau: TTableau;

implementation

{$R *.dfm}

//Le Timer a été réglé pour exécuter la procédure 10 fois par seconde : Interval = 100
procedure TTableau.Timer1Timer(Sender: TObject);
//On déclare une structure MemoryStatus
var Memory : TMemoryStatus;
begin
//On récupère les informations du système sur la mémoire physique et virtuelle
 GlobalMemoryStatus(Memory);

 // Affiche la taille de la structure MemoryStatus en bytes
 dwLength1.Caption := IntToStr(Memory.dwLength);
 // Affiche un nombre entre 0 et 100 du pourcentage de mémoire physique utilisée
 dwMemoryLoad1.Caption := IntToStr(Memory.dwMemoryLoad);
 // Affiche la taille totale de la mémoire physique en bytes
 dwTotalPhys1.Caption := IntToStr(Memory.dwTotalPhys);
 // Affiche la taille de la mémoire physique disponible en bytes
 dwAvailPhys1.Caption := IntToStr(Memory.dwAvailPhys);
 // Affiche la limite de taille de la mémoire engagée en bytes
 dwTotalPageFile1.Caption := IntToStr(Memory.dwTotalPageFile);
 // Affiche la taille disponible de la mémoire à engager en bytes
 dwAvailPageFile1.Caption := IntToStr(Memory.dwAvailPageFile);
 // Affiche la taille totale de la mémoire virtuelle pour le processus en bytes
 dwTotalVirtual1.Caption := IntToStr(Memory.dwTotalVirtual);
 // Affiche la taille de la mémoire virtuelle non engagée pour le processus
 dwAvailVirtual1.Caption := IntToStr(Memory.dwAvailVirtual);

 // Affiche la taille de la structure MemoryStatus en bytes
 dwLength2.Caption := Format('Taille de la structure MemoryStatus = %d bytes',[Memory.dwLength]);
 // Affiche le pourcentage de mémoire physique utilisée
 dwMemoryLoad2.Caption := Format('Mémoire utilisée = %d %%',[Memory.dwMemoryLoad]);
  // Affiche la taille totale de la mémoire physique en mégaoctets
 dwTotalPhys2.Caption := FormatFloat('"Mémoire physique = "#,#" Mo"',(Memory.dwTotalPhys/1024)/1024);
  // Affiche la taille de la mémoire physique disponible en kilo-octets
 dwAvailPhys2.Caption := FormatFloat('"Mémoire physique disponible : "#,###" Ko"',(Memory.dwAvailPhys/1024));
 // Affiche la limite de taille de la mémoire engagée en mégaoctets
 dwTotalPageFile2.Caption := FormatFloat('"Limite de la mémoire engagée = "#,#" Mo"',(Memory.dwTotalPageFile/1024)/1024);
  // Affiche la taille disponible de la mémoire à engager en mégaoctets
 dwAvailPageFile2.Caption := FormatFloat('"Mémoire disponible à engager = "#,#" Mo"',(Memory.dwAvailPageFile/1024)/1024);
  // Affiche la taille totale de la mémoire virtuelle pour le processus en mégaoctets
 dwTotalVirtual2.Caption := FormatFloat('"Mémoire virtuelle = "#,#" Mo"',(Memory.dwTotalVirtual/1024)/1024);
  // Affiche la taille de la mémoire virtuelle non engagée pour le processus en mégaoctets
 dwAvailVirtual2.Caption := FormatFloat('"Mémoire virtuelle disponible : "#,#" Mo"',(Memory.dwAvailVirtual/1024)/1024);
end;

end.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.