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.
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.