Листинг 7.14.
Сохранение параметров формы в реестре
procedure TForm1.OKClick(Sender: TObject);
begin
SaveFilter();
//Выполняем требуемые действия…
end;
//Процедура сохраняет параметры в реестр
procedure TForm1.SaveFilter();
var
reg: TRegistry; //По умолчанию: RootKey = HKEY_CURRENT_USER
strShops: String;
i: Integer;
begin
reg := TRegistry.Create();
try
//Открываем или создаем раздел, в котором будут
//сохранены параметры формы
reg.OpenKey(strBaseKey + \'\Form1\', True);
//Сохранение параметров
//1. Размер и положение формы
reg.WriteInteger(\'Width\', Width);
reg.WriteInteger(\'Height\', Height);
reg.WriteInteger(\'Top\', Top);
reg.WriteInteger(\'Left\', Left);
//2. Последнее введенное наименование
reg.WriteString(\'txtName.Text\', txtName.Text);
//3. Выбранные магазины
strShops := \'\
for i := 0 to lstShops.Count–1 do
if lstShops.Selected[i] then
strShops := strShops + lstShops.Items[i] + \',\
reg.WriteString(\'lstShops.Selection\', strShops);
//4. Применение сортировки
reg.WriteBool(\'chkSort.Checked\', chkSort.Checked);
except
on ERegistryException do
MessageBox(Handle, \'Ошибка при сохранении фильтра\',
\'Поиск товара\', MB_ICONEXCLAMATION)
;
end;
reg.CloseKey();
reg.Free();
end;
В рассматриваемом примере константа strBaseKey, определяющая положение раздела для сохранения настроек, задана следующим образом: