<IMG SRC="wel.gif" ALT="">

[1998.05.10] Borland Delphiで物理メモリ量を取得してみよう

今回はDelphiを使用して全物理メモリ量と空き物理メモリ量を取得して、 メモリ利用率を表示してみましょう

とりあえず、フォームにボタン1個とEditBOX3個を配置して下さい。
この方法はDelphi2でもDelphi3.1でも使用できます。どんどん挑戦して下さい。又、うまくいかない場合には メールにてお問い合わせ下さい。

1.まず、新規作成したフォームにボタンとEditボックスを3個配置して下さい。 このボタンクリックイベントに次のコードを記述します。
procedure TForm1.Button1Click(Sender: TObject);
Var
  Mems:           TMemoryStatus;
  memres1,memres2,memres3:  single;
  memi:           integer;
begin
  GlobalMemoryStatus(mems);
  memres1 := Mems.dwTotalPhys Div 1024;
  memres2 := Mems.dwAvailPhys Div 1024;
  memres3 := (memres1 - memres2) / memres1 * 100;
  memi := trunc(memres3);
  Edit1.text := inttostr(Mems.dwTotalPhys div 1024) + 'KB';
  Edit2.text := inttostr(Mems.dwAvailPhys div 1024) + 'KB';
  Edit3.text := inttostr(memi) + '%';
end;
2.Mems: TMemoryStatus;は、MemsをTMemoryStatus型として宣言しています。
3.実際にはWin32APIのGlobalMemoryStatus(mems);で構造体にシステム情報を読み込みます。
4.上記のAPIを使用して取得した情報はByte単位なのでこれを1024で除算します。
5.後は整数をtring型としてEditBoxに表示します。

6.ついでにC++Builderでは次の様になります。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MEMORYSTATUS Mems;
  Mems.dwLength=sizeof(MEMORYSTATUS);
  GlobalMemoryStatus(&Mems);
  Edit1->Text = IntToStr(Mems.dwTotalPhys / 1024);
  Edit2->Text = IntToStr(Mems.dwAvailPhys / 1024);
}
//---------------------------------------------------------------------------


戻る