Урок 67 - INI файлы

   INI файлы - это удобный способ хранения настроек программы, ini файлы представляют собой простые текстовые файлы доступных для редактирования.

   Мы напишем пример, программа будет запоминать размеры и положения формы и восстанавливать их при запуске.

   Для начала добавим в секцию uses модуль IniFiles, и создадим глобальную переменную Settings: TINIFile;

   В FormCreate напишем код:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Settings:=  TIniFile.Create(GetCurrentDir + '\config.ini'); 	// Создаем ini файл
  Form1.Top:= Settings.ReadInteger('Form', 'Top', 200);     	// Читаем свойство Top
  Form1.Left:= Settings.ReadInteger('Form', 'Left', 200);       // Читаем свойство Left
  Form1.Width:= Settings.ReadInteger('Form', 'Width', 200); 	// Читаем свойство Width
  Form1.Height:= Settings.ReadInteger('Form', 'Height', 200);   // Читаем свойство Height
end;


   Если ничегго не указать в TIniFile.Create то файл создастся в C:\Windows\.

   Разберём функцию: ReadInteger(const Section, Ident: string; Default: Longint): Longint;

  • Section - Имя секции с параметрами
  • Ident - Имя параметра
  • Default - Стандартное значение если параметр не был найден


   Как видите при компиляции ничего не появилось, а просто форма изменила свои габариты, чтобы появился файл с настройками надо их записать.

   В обработчике OnClose Form1 пишем код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Settings.WriteInteger('Form', 'Top', Form1.Top);       //Записываем свойство Top
  Settings.WriteInteger('Form', 'Left', Form1.Left);     //Записываем свойство Left
  Settings.WriteInteger('Form', 'Width', Form1.Width);   //Записываем свойство Width
  Settings.WriteInteger('Form', 'Height', Form1.Height); //Записываем свойство Height
end;


   При закрытии параметры буду сохранятся. Попробуйте по растягивайте форму, по перемещайте ее и закройте, затем откройте и все сохранится.

Удачи!
Встретимся в следующем уроке!




Добавил(а): RinDproramer Дата: 2013-07-30
Ini файлы мне очень помогли, благодаря им, можно делать сохранения своей игры.



Добавил(а): RinDproramer Дата: 2013-07-31
Можно дополнить тем, что после *Read* и *Write* может идти не только Integer, а любой тип переменной. Например: WriteString, ReadReal.


    No results found.
Отменить.