Ср, 08.05.2024, 10:14
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории раздела
Windows [4]
Android [0]
Поиск
Наш опрос
Какие из моих программ вам порнавились?
Всего ответов: 7
Реклама
Счетчики
Рейтинг@Mail.ru

Яндекс.Метрика
Simply-Art
Главная » Статьи » Программирование » Windows

Работа с реестром
Первое что надо сделать это добавить в uses модуль Registry

Затем написать две процедуры, но чтобы они работали нужно их описать в описании формы:

type
  TForm1 = class(TForm)
    procedure SaveProgParam;
    procedure LoadProgParam;
Первая, это процедура сохранения параметров программы:
procedure TForm1.SaveProgParam;
var
 RIniFile: TRegIniFile;
Begin
 // по умолчанию всё делается в HKEY_CURRENT_USER
 RIniFile := TRegIniFile.Create('Software');
 RIniFile.OpenKey('Папка_вашей_программы',true);
 if Form1.WindowState=wsNormal then
 begin
  RIniFile.WriteInteger('Option', 'Width', Width);
  RIniFile.WriteInteger('Option', 'Heigth', Height);
  RIniFile.WriteInteger('Option', 'Left', Left);
  RIniFile.WriteInteger('Option', 'Top', Top);
 end;
 RIniFile.WriteInteger('Option', 'WinState', Integer(WindowState));
 RIniFile.Free; //освобождаем переменную
end;

WriteInteger - процедура записи целого числа в реестр. В ней Write… - означает запись .…Integer – означает тип записываемой переменной, в данном случае целочисленный. Первый параметр 'Option' – это подраздел: 'Папка_вашей_программы\Option\'. Второй параметр 'Width' – название ключа (файла в реестре). Третий – это переменная которую мы записываем.
Здесь мы записали положение окна и развёрнуто ли оно. Далее мы пишем процедуру загрузки этих параметров:
procedure TForm1.LoadProgParam;
var
 RIniFile: TRegIniFile;
Begin
 // по умолчанию всё делается в HKEY_CURRENT_USER
 RIniFile:=TRegIniFile.Create('Software');
 RIniFile.OpenKey('Папка_вашей_программы',true);
 Width:=RIniFile.ReadInteger('Option', 'Width', 600);
 Height:=RIniFile.ReadInteger('Option', 'Heigth', 300);
 Left:=RIniFile.ReadInteger('Option', 'Left', 10);
 
Top:=RIniFile.ReadInteger('Option', 'Top', 10);

 WindowState:=TWindowState(RIniFile.ReadInteger('Option', 'WinState', 0));
 RIniFile.Free; //освобождаем переменную
end;


ReadInteger - аналогично процедуре WriteInteger.

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

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

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 SaveProgParam;
end;
Всё, теперь программа будет помнить своё положение на момент закрытия. Задавайте вопросы в комментариях если таковые возникнут.

copyright by Simply-Art
Категория: Windows | Добавил: Simply-Art (12.11.2013)
Просмотров: 520 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Хостинг от uCozCopyright Simply-Art © 2024