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

Листинг 7.15.

Загрузка параметров формы из реестра

procedure TForm1.FormCreate(Sender: TObject);

begin

LoadFilter;

end;

//Процедура загружает параметры из реестра

procedure TForm1.LoadFilter;

var

reg: TRegistry; //По умолчанию: RootKey = HKEY_CURRENT_USER

strShops: String;

shopStart, shopEnd: Integer;

begin

reg := TRegistry.Create;

try

//Открываем раздел, в котором сохранены параметры формы

reg.OpenKey(strBaseKey + \'\Form1\', False);

//Загрузка сохраненных ранее параметров

//1. Размер и положение формы

Width := reg.ReadInteger(\'Width\');

Height := reg.ReadInteger(\'Height\');

Top := reg.ReadInteger(\'Top\');

Left := reg.ReadInteger(\'Left\');

//2. Последнее введенное наименование

txtName.Text := reg.ReadString(\'txtName.Text\');

//3. Выбранные в прошлый раз магазины

strShops := reg.ReadString(\'lstShops.Selection\');

shopStart := 1;

for shopEnd := 0 to Length(strShops) do

if strShops[shopEnd] = \',\' then

begin

//Получение имени магазина и выделение его в списке

SelectShop(Copy(strShops, shopStart,

shopEnd – shopStart));

shopStart := shopEnd + 1;

end;

//4. Применение сортировки

chkSort.Checked := reg.ReadBool(\'chkSort.Checked\');

except

on ERegistryException do

//Игнорируем ошибки (просто не

//будут зачитаны данные из реестра,

//например, при первом запуске программы)

;

end;

reg.CloseKey;

reg.Free;

end;

//Процедура выделяет магазин с заданным названием

//(если он есть в списке)

procedure TForm1.SelectShop(strShopName: String);

var

i: Integer;

begin

for i := 0 to lstShops.Count–1 do

if lstShops.Items[i] = strShopName then

begin

lstShops.Selected[i] := True;

Exit;

end;

end;

Некоторая сложность алгоритма загрузки списка выбранных магазинов обусловлена желанием добиться того, чтобы при изменении списка не выделялись ранее не выбранные магазины (иначе можно было бы просто сохранять индексы).

...

Примечание

Чтобы при первом запуске процедуры LoadFilter не появлялись сообщения об исключениях (при работе в отладчике Delphi), снимите флажок Stop on Delphi Exceptions на вкладке Language Exceptions диалогового окна Debugger Options (меню Tools → Debugger Options).

Автозапуск программ

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

Итак, в ветвях реестра HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE находятся разделы Software\Microsoft\Windows\CurrentVersion\Runи Software\ Microsof t\Windows\CurrentVersion\RunOnce. В первом (Run) сохраняются пути приложений, запускаемых при каждой загрузке Windows. В разделе же RunOnce обычно регистрируются приложения типа инсталляторов, которые запускаются при первой с момента регистрации перезагрузке Windows, но до запуска программы Проводник. При запуске приложения, зарегистрированного в ключе RunOnce, соответствующая запись из этого раздела автоматически удаляется.

От выбора ветви реестра (HKEY_LOCAL_MACHINE ИЛИ HKEY_CURRENT_USER) зависит, в сеансе всех ли пользователей будет запускаться приложение.

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

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

102 способа хищения электроэнергии
102 способа хищения электроэнергии

Рассмотрена проблема хищений электроэнергии и снижения коммерческих потерь в электрических сетях потребителей. Приведены законодательно–правовые основы для привлечения к ответственности виновных в хищении электроэнергии. Изложены вопросы определения расчетных параметров средств учета электроэнергии, показаны схемы подключения счетчиков электрической энергии. Описаны расчетные и технологические способы хищения электроэнергии. Обсуждаются организационные и технические мероприятия по обнаружению, предотвращению и устранению хищений.Для работников энергоснабжающих организаций и инспекторского состава органов Ростехнадзора. Материалы книги могут быть использованы руководителями и специалистами энергослужб предприятий (организаций) для правильного определения расчетных параметров средств учета и потерь электроэнергии в электрических сетях.Если потенциальные расхитители электроэнергии надеются найти в книге «полезные советы», они должны отдавать себе отчет, что контролирующие структуры информированы в не меньшей степени и, следовательно, вооружены для эффективной борьбы с противоправной деятельностью.Настоящая книга является переработанным и дополненным изданием выпущенной в 2005 г. книги «101 способ хищения электроэнергии».

Валентин Викторович Красник

Технические науки / Образование и наука
Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
100 великих чудес инженерной мысли
100 великих чудес инженерной мысли

За два последних столетия научно-технический прогресс совершил ошеломляющий рывок. На что ранее человечество затрачивало века, теперь уходят десятилетия или всего лишь годы. При таких темпах развития науки и техники сегодня удивить мир чем-то особенным очень трудно. Но в прежние времена появление нового творения инженерной мысли зачастую означало преодоление очередного рубежа, решение той или иной крайне актуальной задачи. Человечество «брало очередную высоту», и эта «высота» служила отправной точкой для новых свершений. Довольно много сооружений и изделий, даже утративших утилитарное значение, тем не менее остались в памяти людей как чудеса науки и техники. Новая книга серии «Популярная коллекция «100 великих» рассказывает о чудесах инженерной мысли разных стран и эпох: от изобретений и построек Древнего Востока и Античности до небоскребов в сегодняшних странах Юго-Восточной и Восточной Азии.

Андрей Юрьевич Низовский

История / Технические науки / Образование и наука