Валерий Борисок - Delphi. Трюки и эффекты

Тут можно читать онлайн Валерий Борисок - Delphi. Трюки и эффекты - бесплатно ознакомительный отрывок. Жанр: Программы. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Delphi. Трюки и эффекты
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.11/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валерий Борисок - Delphi. Трюки и эффекты краткое содержание

Delphi. Трюки и эффекты - описание и краткое содержание, автор Валерий Борисок, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

«Delphi. Трюки и эффекты», как и все издания данной серии, адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые, интересные вещи. В первой части книги многое говорится о среде разработки Delphi (самых последних версий) и программировании на языке Object Pascal. Благодаря этому издание подходит и новичкам, и начинающим программистам. Вторая (основная) часть книги описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения МРЗ и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.

Delphi. Трюки и эффекты - читать онлайн бесплатно ознакомительный отрывок

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. Собранная информация о системе питания

В нашем случае можно заключить, что программа испытывалась на компьютере, хоть и снабженном аккумулятором, но с явно недоделанной системой питания.

И последние несколько слов о том, когда рассмотренный пример может реально пригодиться. А пригодится он в случае, если ваше приложение оперирует большим объемом важных данных, на сохранение которых требуется длительное время и потеря которых может принести большие неприятности. Тогда при обнаружении разрядки батареи приложение может сохранить (а точнее, длительное время сохранять) данные на диск до лучших времен, например, до тех пор, пока питание вновь не будет включено, а заряд батареи не достигнет требуемого значения.

Состояние памяти компьютера

Получение снимка текущего состояния памяти компьютера также является несложной задачей. Недаром эту информацию многие приложения, тот же Блокнот, выводят в окне О программе: заполнить форму чем-то надо, а сведения об объеме памяти кажутся довольно актуальными.

Итак, получить состояние памяти компьютера можно при помощи API-функции GlobalMemoryStatus. Данная функция принимает в качестве параметра структуру TMemoryStatus, заполняет ее поля значениями и в случае успеха возвращает отличное от нуля число. Объявление структуры TMemoryStatus с комментариями роли ее полей приводится ниже:
...

TMemoryStatus = record

dwLength: DWORD; //Размер структуры (байт)

dwMemoryLoad: DWORD; //Процент загрузки физической памяти

dwTotalPhys: DWORD; //Полный объем физической памяти

dwAvailPhys: DWORD; //Объем свободной оперативной памяти

dwTotalPageFile: DWORD; //Полный объем файла подкачки

dwAvailPageFile: DWORD; //Объем свободного пространства

//в файле подкачки

dwTotalVirtual: DWORD; //Полный объем виртуальной памяти

dwAvailVirtual: DWORD; //Объем свободной виртуальной памяти

end;

Два последние поля структуры TMemoryStatus относятся к приложению, вызывающему функцию GlobalMemoryStatus. Они рассмотрены чуть ниже. Пример использования функции GlobalMemoryStatus приведен в листинге 7.6.

...

Листинг 7.6.

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

procedure TForm1.LoadMemoryInfo();

var

memStat: TMemoryStatus;

begin

memStat.dwLength := SizeOf(memStat);

//Получение информации о загрузке памяти

GlobalMemoryStatus(memStat);

//Заполнение полей формы

//..% использования памяти

pbMemUsage.Position := memStat.dwMemoryLoad;

lblMemUsage.Caption := IntToStr(memStat.dwMemoryLoad) + \'%\

//..использование оперативной памяти

txtMemTotal.Text := IntToStr(memStat.dwTotalPhys div 1024);

txtMemAvail.Text := InttoStr(memStat.dwAvailPhys div 1024);

//..использование файла подкачки

txtPageTotal.Text := IntToStr(memStat.dwTotalPageFile div 1024);

txtPageAvail.Text := InttoStr(memStat.dwAvailPageFile div 1024);

//..использование виртуальной памяти

txtVirtualTotal.Text := IntToStr(memStat.dwTotalVirtual div 1024);

txtVirtualAvail.Text := InttoStr(memStat.dwAvailVirtual div 1024);

end;

Внешний вид формы, элементы управления которой заполняются значениями в листинге 7.6, показан на рис. 7.3.

Рис. 7.3. Программа для определения состояния памяти компьютера

Напоследок рассмотрим (несколько упрощенно), что за результаты выводятся в текстовых полях формы, для тех, кто немного не в курсе, как организовано управление памятью в ОС Windows.

Итак, каждому процессу Windows предоставляет адресное пространство (виртуальное) размером чуть меньше 2 Гбайт. В отличие от 16-битных предшественниц, в 32-битных Windows адресные пространства различных процессов являются закрытыми: приложение использует память (а точнее, младшие 2 Гбайт адресного пространства) единолично и не может без дополнительных усилий манипулировать данными других процессов. Значения в двух последних полях CTpyKTypbiTMemoryStatus (и нижняя группа текстовых полей на форме рис. 7.3) как раз и показывают использование приложением предоставляемого ему адресного пространства.

Механизм виртуальной памяти является довольно удобной надстройкой, скрывающей ограниченность аппаратных ресурсов компьютера. Ограниченный объем оперативной памяти компенсируется использованием места на диске (файла подкачки, страничного файла). В этот файл записываются для временного хранения неиспользуемые страницы памяти (блоки данных по несколько Кбайт), давая возможность помещать другие данные, нужные приложению, в оперативную память.

Теперь вернемся к форме, показанной на рис. 7.3. Группа текстовых полей Оперативная память показывает полный и свободный объем реально установленной на компьютере оперативной памяти (за вычетом памяти, используемой для системных нужд). Использование этого вида памяти иллюстрирует индикаторРгодгезБВаг на форме. Назначение правой группы текстовых полей (Файл подкачки) должно быть также очевидным.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валерий Борисок читать все книги автора по порядку

Валерий Борисок - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Delphi. Трюки и эффекты отзывы


Отзывы читателей о книге Delphi. Трюки и эффекты, автор: Валерий Борисок. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x