Основное меню
Главная
Написать мне
Гостевая
Новости сайта

Статьи
О Языках программирования
Delphi
Visual Basic
JavaScript
VBScript

Мои программы
CLOCK
CD-organaizer
Delphi. Работа с реестром

Delphi. Работа с реестром


Ну вот и ещё одна статья. Мы уже разобрали *.ini файлы, теперь надо изучить работу с реестром. Тем кто не в курсе сообщаю - реестр это что-то вроде "базы дынных" где хранят свои параметры программы(да и сама винДОС). Хранить параметры программы в реестре более "современно" и "безопасно" чем ini-файлах, т.к. эти самые параметры, хоть-как-то спрятыны от глаз ламеров. Но при всех достоинствах есть тут одно неудобство... Да, да, вам не послышелось! Например есть программа которую вы написали, настроили всячески, и вам надо отнести её показать другу на дискетке. *.ini-файл можно просто скинуть на дискетку, вместе с прогой, а вот если переносить параметры программы из реестра, то придётся по-париться(я не говорю что это невозможно)....

Ну как состоит реестр, из ГЛАВНЫХ РАЗДЕЛОВ, РАЗДЕЛОВ(возможны и ПОДРАЗДЕЛЫ), ПАРАМЕТРАМИ со ЗНАЧЕНИЯМИ. В принципе работа осуществляется не сложнее чем с *.ini-файлами... Так-же создаётся переменная через которую произходит "общение" с реестром. Ну давай всё по шагам.

  1. Объявляем переменную
  2. Создать эту переменную где-нить.
  3. Определить раздел.
  4. Зписать значение (или считать значение).
  5. Освободить переменную.

Тя-а-а-кс... :) Ну теперь давай все эти пункты разберём.

  1. Как обьявить переменную. Надо в разделе var, какой-нить процедуры(Button1Click, например), обьявить переменную reg(например) типа TRegIniFile. Но сначала, надо в раздел uses добавить registry
  2. А создают переменную так: reg:=TRegIniFile.Create('SoftWare'); Это мы типа создали переменную в разделе Software. В этом разделе хранятся параметры программ, по "традиции"... Но никто тебе не мешает зафигачить в другой раздел, для "консперации" :)... Ну а главным разделом является HKEY_CURRENT_USER ну это типа раздел для текущего юзера...
  3. Ну а определить раздел достаточно просто, вот так:
reg.OpenKey('clickoman', true);. Ну поясню: мы открываем раздел clickoman, ну а если его не существует, то создаём(это 2 параметр, который true).
Теперь у нас вот что получается: HKEY_CURRENT_USER\Software\clickoman\
  4. Вот здесь давай по-подробнее..

запись
Запись делается вот так:
reg.WriteInteger('proga', 'FormWidth', Form1.Width);
А вот теперь у нас вот что получается: HKEY_CURRENT_USER\Software\clickoman\proga\
Можно было еще раз сделать OpenKey proga, и уже там писать:
reg.WriteInteger('Form', 'Width', Form1.Width); - так намного удобнее!
Вот смотри: вместо clickoman - мона написать твоё имя, вместо proga - имя твоей проги! Ну вообщем разберёшся...
Мы записали ПАРАМЕТР FormWidth со ЗНАЧЕНИЕМ Form1.Width(ну это, ширина нашей формы)
Можно записывать не только Integеr`овские знаения, но и String`овые, Bool`евые и тд...
reg.WriteString('proga', 'FormCaption', Form1.Caption);
reg.WriteBool('proga', 'Button1Visible', Button1.Visible);

чтение
Чтение делается не сложнее записи :).
Form1.Caption:=reg.ReadString('proga', 'FormWidth', 'значение по умолчанию');
Читать можно и Integer`оские и т.д.... Ф-У-У-У-У-У-Ф-Ф-Ф-Ф!!!!!!!!!! :)

  5. Очищение делается так:
reg.Free;
Посмотреть реестр мона так: пуск->выполнить и написать regedit.

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

ВОТ ОН ПРИМЕР

Если чего не понятно, то пиши на мыло: vostepan@mail.ru