Delphi: Как загрузить настройки программы из файла?
Программу, написанную на Delphi, можно сделать более удобной за счет специального файла с настройками. По завершении работы с программой настройки сохраняются в данном файле, а при последующем открытии загружаются из него.
Реализовать такую функцию несложно. Ниже приведен пример, когда при выходе программа сохраняет в отдельный файл свои размеры, а также расположение окна на экране. При новом запуске она в точности восстанавливает данные параметры. Алгоритм следующий:
Открываем Delphi и создаем новый проект;
Далее используются события OnShow и OnClose;
Создаем событие OnShow. В данном примере программа загружает свои настройки из файла sett.ini, который находится в папке с программой. Код события выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | procedure TForm1.FormShow(Sender: TObject); Var j:file of Integer; // файловая переменная, тип integer k:Integer; // целочисленная переменная begin AssignFile(j,'sett.ini'); {$I-} // Отключаем сообщения об ошибках Reset(j); {$I+} // Включаем сообщения об ошибках if IOResult<>0 then Exit; Read(j,k); //считываем из файла значение Form1.Top:=k; // верхняя граница окна Read(j,k); Form1.Left:=k; // левая граница окна Read(j,k); Form1.Width:=k; // ширина окна Read(j,k); Form1.Height:=k; // высота окна CloseFile(j); end; |
Событие OnClose будет сохранять необходимые настройки в файл при закрытии программы. Его код выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); Var j:file of Integer; // файловая переменная, тип integer begin AssignFile(j,'sett.ini'); // Привязываем файл к файловой переменной {$I-} // Отключаем сообщения об ошибках Rewrite(j); // Открываем файл {$I+} // Включаем сообщения об ошибках if IOResult<>0 then Exit; // Если возникала ошибка то экстренно завершаем работу программы Write(j,Form1.Top); // Записываем координаты окна по верикали Write(j,Form1.Left); // Записываем координаты окна по горизонтали Write(j,Form1.Width); // Записываем ширину Write(j,Form1.Height); // Записываем высоту CloseFile(j); // Закрываем файл end; |
С помощью данных событий можно сохранять размер окна программы, а также другие ее параметры специфичные именно для вашей программы.
Понравилась статья? Жми: | Поделиться в соц. сетях |
А что специально созданные для этого классы и годами отлаженные уже не в моде?
Я не хочу грузить новичков новыми классами и пр. Сделали по простому)
И это не правильно. Лучше не грузить тогда в таком разрезе. Для статьи о работе с файлами годится. Если тема сохранение настроек — так и надо говорить о правильном подходе. В крайнем случае стоит упомянуть, что этот способ годится только для учебных целей и упомянуть про специально созданные классы. Чтоб те кому нужны реальные способы сохранения могли сами уже найти информацию в доке по названию классов.
(Но самое лучшее либо сменить название темы либо содержание привести в соответствие с заголовком )
Кстати, нужно проверять, но, возможно, при таком подходе нельзя копировать полученный ini файл с 64 битной системы на 32 битную, и наоборот.
Можно и все норм будет =)
значение integer в delphi 32 битное. для более длинных есть int64
Уверен? Размерность integer в Delphi (и, кстати, во многих языках, платформозависимая), а int64 действительно имеет постоянный размер в памяти.
32 бита занимают LongInt и LongWord.
Я могу. конечно, ошибаться (в плане размера int в Delphi), но уверен в правоте на 90%.
Он может в будущем измениться но пока что 32. источник — www.delphibasics.ru/Integer.php и www.delphibasics.co.uk/Article.asp?Name=Numbers