Работа с системным реестром в Delphi достаточно простая. Использование реестра имеет некоторые преимущества перед INI-файлами. Они заключаются в том, что реестр - более стабильный, и у него нет ограничения на размер.
В Delphi для работы с реестром служит модуль Registry. Он предоставляет программисту методы для открытия, закрытия, сохранения, перемещения, копирования и удаления ключей и разделов реестра.
Итак, разберём использование Registry на небольшом примере: при закрытии программы будем сохранять положение и размеры формы в реестре, а при запуске соответственно считывать их. Для начала допишем Registry в раздел uses.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Возможно вы искали - Доклад: Организация функции ПОИСК в Tmemo
Dialogs, Registry;
Теперь создадим обработчик события на закрытие формы:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
reg:TRegistry; //1
Похожий материал - Доклад: Запись строковых выражений, кавычки
begin
reg:=TRegistry.Create; //2
reg.RootKey:=HKEY_CURRENT_USER; //3
reg.OpenKey('software\reg_test',true); //4
reg.WriteInteger('top',form1.Top); //5
Очень интересно - Реферат: Философские аспекты программирования
reg.WriteInteger('left',form1.Left); //6
reg.WriteInteger('width',form1.Width); //7
reg.WriteInteger('height',form1.Height); //8
reg.CloseKey; //9
reg.free; //10
Вам будет интересно - Реферат: Устойчивость охранных устройств к «электронному взлому»
end;
Разберём что же у нас тут делается:
1) Объявляем переменную reg типа TRegistry - именно этот тип и служит для работы с реестром.
2) Инициализируем переменную для работы.
3) Свойство RootKey определяет корневой раздел.
Похожий материал - Доклад: Считаем время выполнения скрипта
4) Метод OpenKey служит для открытия раздела. Первый параметр - это собственно рздел для открытия, а второй параметр определяет создавать ли этот раздел если его не существует.
5 - 8 ) Здесь мы сохраняем нужные параметры формы в определённые ключи реестра. Для этого служат следующие методы:
WriteBinaryData(const Name: String; var Buffer; BufSize: Integer);
WriteBool(const Name: String; Value: Boolean);