» Работа с реестром Borland Delphi. windows. . Блог программистов


Блог программистов




20072 Мар

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

Реестр очень нужная вещь! Им должен уметь пользоваться каждый. Сегодня я покажу маленький пример как сохранить некоторые параметры Вашей программы.
Первое что надо сделать это добавить в uses модуль Registry
Затем написать две процедуры:

type
TForm1 = class(TForm)
procedure SaveProgParam;
procedure LoadProgParam;

procedure TForm1.SaveProgParam;
var
FIniFile: TRegIniFile;
Begin
// по умолчанию всё делается в HKEY_CURRENT_USER
FIniFile := TRegIniFile.Create('Software');
FIniFile.OpenKey('Папка_вашей_программы',true);
if Form1.WindowState=wsNormal then
begin
FIniFile.WriteInteger('Option', 'Width', Width);
// Write… - означает запись, …Integer – означает тип записываемой переменной
// Первый параметр 'Option' – это подраздел: 'Папка_вашей_программы\Option\'
// Второй параметр 'Width' – название ключа (файла в реестре)
// Третий – это переменная которую мы записываем
FIniFile.WriteInteger('Option', 'Heigth', Height);
FIniFile.WriteInteger('Option', 'Left', Left);
FIniFile.WriteInteger('Option', 'Top', Top);
end;
FIniFile.WriteInteger('Option', 'WinState', Integer(WindowState));
FIniFile.Free; //освобождаем переменную
end;


Здесь мы записали положение окна и развёрнуто ли оно. Далее мы пишем процедуру загрузки этих параметров:

procedure TForm1.LoadProgParam;
var
FIniFile: TRegIniFile;
Begin
// по умолчанию всё делается в HKEY_CURRENT_USER
FIniFile := TRegIniFile.Create('Software');
FIniFile.OpenKey('Папка_вашей_программы',true);
Width:=FIniFile.ReadInteger('Option', 'Width', 600);
// Read… - означает чтение, …Integer – означает тип считываемой переменной
// Первый параметр 'Option' – это подраздел: 'Папка_вашей_программы\Option\'
// Второй параметр 'Width' – название ключа (файла в реестре)
// Третий параметр 600 – это значение по умолчанию, если ключ с названием 'Width' не будет найден
Height:=FIniFile.ReadInteger('Option', 'Heigth', 300);
Left:=FIniFile.ReadInteger('Option', 'Left', 10);
Top:=FIniFile.ReadInteger('Option', 'Top', 10);
WindowState:=TWindowState(FIniFile.ReadInteger('Option', 'WinState', 0));
FIniFile.Free; //освобождаем переменную
end;

И теперь внедряем эти процедуры в программу:

procedure TForm1.FormCreate(Sender: TObject);
begin
LoadProgParam;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveProgParam;
end;

Комментарии запрещены