Читаем Delphi. Трюки и эффекты полностью

Листинг 7.5.

Определение состояния системы питания

procedure TForm1.LoadPowerStatus;

var

batFlags: String;

status: TSystemPowerStatus;

prof_info: THWProfileInfo;

begin

lvwPowerStatus.Clear;

//Получаем информацию о состоянии питания

ZeroMemory(Addr(status), SizeOf(status));

GetSystemPowerStatus(status);

//Заполняем список информацией о состоянии питания

//..подключение к сети

case status.ACLineStatus of

0: AddParam(\'Подключение к сети\', \'Отключен\');

1: AddParam(\'Подключение к сети\', \'Подключен\');

else AddParam(\'Подключение к сети\', \'Неизвестно\');

end;

//..заряд батареи (битовая маска)

if status.BatteryFlag and 1 <> 0 then batFlags := \'Высокий \

if status.BatteryFlag and 2 <> 0 then batFlags := batFlags +

\'Низкий \

if status.BatteryFlag and 4 <> 0 then

batFlags := batFlags + \'Критический \

if status.BatteryFlag and 8 <> 0 then

batFlags := batFlags + \'(Идет зарядка)\

if status.BatteryFlag and 128 <> 0 then

batFlags := batFlags + \'Батарея не установлена\

if status.BatteryFlag = 255 then batFlags := batFlags + \'Не-

известно\

AddParam(\'Заряд батареи\', batFlags);

//..численные характеристики батареи

if status.BatteryLifePercent <> 255 then

AddParam(\'Остаток заряда батареи\',

IntToStr(Integer(status.BatteryLifePercent)))

else

AddParam(\'Остаток заряда батареи\', \'Неизвестно\');

if status.BatteryLifeTime <> Cardinal(–1) then

AddParam(\'Время работы батареи (остаток, сек.)\',

IntToStr(Integer(status.BatteryLifeTime)))

else

AddParam(\'Время работы батареи (остаток, сек.)\', \'Неизвестно\');

if status.BatteryFullLifeTime <> Cardinal(–1) then

AddParam(\'Полное время работы батареи, сек.\',

IntToStr(Integer(status.BatteryFullLifeTime)))

else

AddParam(\'Полное время работы батареи, сек.\', \'Неизвестно\');

end;

В листинге 7.5 для отображения каждого параметра системы питания вызывается процедура AddParam, добавляющая в элемент управления формы название параметра и его значение. Этим элементом управления может быть, например, ListView. Для такого случая возможный результат работы процедуры LoadPowerStatus показан на рис. 7.2.

Рис. 7.2. Собранная информация о системе питания

Перейти на страницу:

Похожие книги

Компьютерные сети. 5-е издание
Компьютерные сети. 5-е издание

Перед вами — очередное, пятое издание самой авторитетной книги по современным сетевым технологиям, написанной признанным экспертом в этой области Эндрю Таненбаумом в соавторстве с профессором Вашингтонского университета Дэвидом Уэзероллом. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером и использовалось в качестве базового учебника в ведущих технических вузах. В книге последовательно изложены основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Авторы подробнейшим образом объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до уровня прикладных программ. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования Интернета и компьютерных сетей различного типа. Пятое издание полностью переработано с учетом изменений, происшедших в сфере сетевых технологий за последние годы и, в частности, освещает такие аспекты, как беспроводные сети стандарта 802.12 и 802.16, сети 3G, технология RFID, инфраструктура доставки контента CDN, пиринговые сети, потоковое вещание, интернет-телефония и многое другое.

А. Гребенькова , Джеймс Уэзеролл

Технические науки