Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

В правом нижнем углу формы разместите кнопку (компонент Button категории Standard) и присвойте ее свойству Caption значение Установить. По нажатию этой кнопки будет устанавливаться указанная в компоненте SpinEdit частота обновления информации.

Полученная форма должна соответствовать рис. 11.1.

Рис. 11.1. Форма для отображения информации о памяти компьютера

Разработка программного кода

В

программе будет только две процедуры: первая — обработчик события Timer1.OnTimer, которая определяет и отображает информацию о памяти; вторая — обработчик события OnClick кнопки Установить для задания частоты обновления информации.

Создадим вначале главную часть программы — обработчик события Timer1.OnTimer:

procedure TForm1.Timer1Timer(Sender: TObject);

var

 mem: TMemoryStatus; //хранит всю информацию о памяти

begin

 mem.dwLength:= SizeOf(mem); //размер памяти

 GlobalMemoryStatus(mem); //узнаем всю информацию о памяти

 //выводим информацию в соответствующие метки

 with mem do begin

// Загруженность памяти

Label1.Caption:= IntToStr(dwMemoryLoad) + ' %';

Label2.Caption:= IntToStr((dwTotalPhys) div 1024) + 'Кбайт'; // Всего физической

Label3.Caption:= IntToStr((dwAvailPhys) div 1024) + 'Кбайт'; // Свободно физической

Label4.Caption:= IntToStr((dwTotalPageFile) div 1024) + 'Кбайт'; // Всего страничной

Label5.Caption:= IntToStr((dwAvailPageFile) div 1024) + 'Кбайт'; // Свободно страничной

Label6.Caption:= IntToStr((dwTotalVirtual) div 1024) + 'Кбайт'; // Всего swap

Label7.Caption:= IntToStr((dwAvailVirtual) div 1024) + ' Кбайт'; // Свободно swap

Gauge1.MaxValue:= dwTotalPhys; //определяем максимум

//отображаем процент загруженности памяти

Gauge1.Progress:= dwTotalPhys-dwAvailPhys;

 end;

end;

Сначала мы объявляем переменную mem, которая служит для хранения информации о памяти, полученной с помощью функции GlobalMemoryStatus. После того как мы получили всю необходимую информацию о памяти, делим все значения на 1024, чтобы перевести данные в килобайты. Затем выводим информацию с помощью соответствующих меток, а также изменяем текущую позицию для компонента Gauge.

Осталось только реализовать изменение частоты обновления информации, для чего достаточно изменять значение свойства Timer1.Interval. Обработаем нажатие кнопки Установить:

procedure TForm1.Button1Click(Sender: TObject);

begin

 //установка
интервала работы таймера

 Timer1.Interval:= SpinEdit1.Value*1000;

end;

Поскольку интервал для таймера задается в мс, а в SpinEdit мы вводим значение в секундах, то мы должны умножать значение свойства SpinEdit.Value на 1000.

Программа в действии показана на рис. 11.2.

Рис. 11.2. Программа отображения информации о памяти в действии

Полный исходный код модуля

Полный исходный код модуля программы отображения информации о памяти представлен в листинге 11.1.

Листинг 11.1. Модуль программы Memory info

unit Unit1

interface

uses

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

type TForm1 = class(TForm)

 Label1: TLabel;

 Label2: TLabel;

 Label3: TLabel;

 Label4: TLabel;

 Label5: TLabel;

 Label6: TLabel;

 Label7: TLabel;

 Gauge1: TGauge;

 Timer1: TTimer;

 Label8: TLabel;

 Label9: TLabel;

 Label10: TLabel;

 Label11: TLabel;

 Label12: TLabel;

 Label13: TLabel;

 Label14: TLabel;

 SpinEdit1: TSpinEdit;

 Label15: TLabel;

 Label16: TLabel;

 Button1: TButton;

 procedure Timer1Timer(Sender: TObject);

 procedure Button1Click(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

var

 mem: TMemoryStatus; //хранит всю информацию о памяти

Поделиться:
Популярные книги

Метаморфозы Катрин

Ром Полина
Фантастика:
фэнтези
8.26
рейтинг книги
Метаморфозы Катрин

Вечная Война. Книга V

Винокуров Юрий
5. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
7.29
рейтинг книги
Вечная Война. Книга V

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Студент

Гуров Валерий Александрович
1. Студент
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Студент

Наизнанку

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Наизнанку

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Кукловод

Злобин Михаил
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50
рейтинг книги
Кукловод

Наследник с Меткой Охотника

Тарс Элиан
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник с Меткой Охотника

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Я снова граф. Книга XI

Дрейк Сириус
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я снова граф. Книга XI

Егерь

Астахов Евгений Евгеньевич
1. Сопряжение
Фантастика:
боевая фантастика
попаданцы
рпг
7.00
рейтинг книги
Егерь

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16