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

Источник: rusdoc

Реестр очень нужная вещь! Им должен уметь пользоваться каждый. Сегодня я покажу маленький пример, как сохранить некоторые параметры Вашей программы.

Первое, что надо сделать - это добавить в 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;

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=8226