Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Вниз

Памогите пожалуйсто . Как узнать общее количество установленной и свободной оперативной память? 


Dann   (2001-11-02 02:15) [0]

Заранее огромное спасибо.....



swr   (2001-11-02 09:32) [1]

GlobalMemoryStatus + F1



TSV   (2001-11-02 10:45) [2]

Примерно так:

unit About;

interface

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

type
TAboutForm = class(TForm)
OKButton: TButton;
Bevel1: TBevel;
Timer1: TTimer;
Panel1: TPanel;
Image1: TImage;
TitleRxLabel: TRxLabel;
VersionRxLabel: TRxLabel;
CopyrightRxLabel: TRxLabel;
RightsRxLabel: TRxLabel;
EmailRxLabel: TRxLabel;
OSVersionRxLabel: TRxLabel;
TotalMemoryRxLabel: TRxLabel;
FreeMemoryRxLabel: TRxLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
Free_Memory: string;
MS: TMemoryStatus;
VI: TOSVersionInfo;
public
{ Public declarations }
end;

var
AboutForm: TAboutForm;

implementation

{$R *.DFM}

{ TAboutForm }

procedure TAboutForm.FormCreate(Sender: TObject);
begin
// "инициализируем" переменные
MS.dwLength := SizeOf(TMemoryStatus);
VI.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
// собираем информацию
GlobalMemoryStatus(MS);
GetVersionEx(VI);
// анализируем и выводим
case VI.dwPlatformId of
VER_PLATFORM_WIN32s:
OSVersionRxLabel.Caption := OSVersionRxLabel.Caption +
"Windows 3.x running Win32s";
VER_PLATFORM_WIN32_WINDOWS:
OSVersionRxLabel.Caption := OSVersionRxLabel.Caption +
"Windows 95/98";
VER_PLATFORM_WIN32_NT:
OSVersionRxLabel.Caption := OSVersionRxLabel.Caption +
"Windows NT/2000";
end; // case
OSVersionRxLabel.Caption := OSVersionRxLabel.Caption + " " +
IntToStr(VI.dwMajorVersion) + "." + IntToStr(VI.dwMinorVersion) +
" (Build " + IntToStr(VI.dwBuildNumber) + ")";
TotalMemoryRxLabel.Caption := TotalMemoryRxLabel.Caption +
IntToStr(MS.dwTotalPhys div 1024) + " KB";
Free_Memory := FreeMemoryRxLabel.Caption;
FreeMemoryRxLabel.Caption := Free_Memory +
IntToStr(MS.dwAvailPhys div 1024) + " KB";
end;

procedure TAboutForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

procedure TAboutForm.Timer1Timer(Sender: TObject);
begin
// собираем информацию
GlobalMemoryStatus(MS);
FreeMemoryRxLabel.Caption := Free_Memory +
IntToStr(MS.dwAvailPhys div 1024) + " KB";
end;

end.

Взято из двухтомника Тейксера и Пачеко "Delphi 5. Руководство разработчика."

С уважением.



Dann   (2001-11-03 02:16) [3]

Огромное спасибо




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.017 c
6-18934           SemFLY                2001-11-13 20:21  2002.02.07  
Какая команда в Windows разрывает соединение с интеренетом ?


1-18788           OGR                   2002-01-21 16:06  2002.02.07  
Как передавать параметры из командной строки?


3-18691           Fareader              2002-01-08 17:15  2002.02.07  
Locate или не Locate - вот в чем вопрос :)


6-18927           alex16                2001-11-15 07:40  2002.02.07  
Ошибка


3-18751           NLO                   2002-01-11 12:35  2002.02.07  
BLOB или ...