Загрузка настроек программы из файла. Delphi

Опубиковано: 05.06.2008 г., автор: , просмотров: 53127

Delphi программирование, создание программ.

Многих интересует вопрос как сделать так что бы программа, написанная на Delphi при закрытии сохраняла свои настройки в файл, а при последующем открытии загружала их от туда. На самом деле делается это очень просто, приведу пример, в котором программа при выходе сохраняет свои размеры и положение окна на экране в файл и при последующем запуске восстанавливает состояние, которое было при выходе. Запускаем Delphi, создаем новый проект, работать будем с формой и нам понадобиться два события это OnShow и OnClose создаем их. Первое событие будет выглядеть следующим образом:

procedure TForm1.FormShow(Sender: TObject);
Var f:file of Integer; // файловая переменная, тип integer
i:Integer; // целочистенная переменная
begin
AssignFile(f,'pos.ini');
{$I-} // Отключаем контроль ошибок
Reset(f);
{$I+} // Включаем контроль ошибок
if IOResult<>0 then Exit;
Read(f,i); //считать из файла значение
Form1.Top:=i; // верхнее положение окна
Read(f,i);
Form1.Left:=i; // левое положение окна
Read(f,i);
Form1.Width:=i; // ширина окна
Read(f,i);
Form1.Height:=i; // высота окна
CloseFile(f);
end;

Здесь при запуске программа загружает нужные настройки из файла pos.ini находящимся в той же папке что и сама программа.

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

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var f:file of Integer; // файловая переменная, тип integer
begin
AssignFile(f,'pos.ini'); // Привязываем строку пути файла к файловой переменной
{$I-} // Отключаем контроль ошибок
Rewrite(f);
{$I+} // Включаем контроль ошибок
if IOResult<>0 then Exit; // Если ошибка то выходим
Write(f,Form1.Top); // Записываем в файл положение окна по верикали
Write(f,Form1.Left); // Записываем в файл положение окна по горизонтали
Write(f,Form1.Width); // Записываем в файл ширину формы
Write(f,Form1.Height); // Записываем в файл высоту формы
CloseFile(f); // Завершаем работу с файлом
end;

Данный пример подойдет не только для сохранения размера окна программы, но и для сохранения других настроек.



Похожие материалы

Последние из рубрики

Will 26 Jul 2011 в 00:00 #
Ini проще однозначно, на счет сохранения компонентов можно использовать TStream, вообще еще можно писать в системный реестр, создавать например типизированный файл... есть очень очень много чего, а текстовый файл... постоянно парсить приходится, выискивать что где..

или тут уровень "программеров" 1 из 10?
12dasd 26 Jun 2011 в 00:00 #
"OnShow"
А может OnCreate?
Web2012 27 Apr 2011 в 00:00 #
А как сделать тоже самое, только чтобы сохраняло то, что написано в label???
Доминаторша 18 Dec 2010 в 00:00 #
Смотря какой тип переменной x
TimKruz 17 Dec 2010 в 00:00 #
Автор молодец, для новичков статья полезна!

А вот самый простой (на мой взгляд) способ записывать настройки в файл, сам его использую: описываем запись, её поля называем как хотим, в зависимости от настроек, которые хотим получить; описываем типизированный файл (файл_с_настройками of имя_записи); при создании формы открываем файл и читаем запись (read(имя_записи)); настройкам формы и прочего присваиваем значения, которые появились в записи; при закрытии формы копируем все настройки в соответствующие поля в записи и записываем запись в файл с настройками (write(имя_записи)). Конечно, у данного способа есть недостаток: запись занимает много памяти. Но в некоторых случаях этот способ будет полезен.

P.S. Вроде бы как-то можно высвобождать память из-под записи... Во время работы программы она обычно не нужна.

ОтменитьДобавить комментарий