Работа с реестром
Реестр очень нужная вещь! Им должен уметь пользоваться каждый. Сегодня я покажу маленький пример как сохранить некоторые параметры Вашей программы.
Первое что надо сделать это добавить в 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;