Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.09.2019, 15:46
kandiral kandiral вне форума
Прохожий
 
Регистрация: 04.09.2019
Сообщения: 2
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию Работа с ini-файлами в Delphi

Мой компонент работы с ini-файлами KRIniConfig, является надстройкой над классом TIniFile.
Каждый параметр конфигурационного файла представляет из себя отдельный компонент. Имя компонента является и именем параметра в ini-файле, что дает возможность обращаться к параметру по имени прямо из кода программы.

Описание свойств и методов:
https://kandiral.ru/delphi/kriniconfig.pas.html

Пример использования с видеообзором:
https://kandiral.ru/delphi/primer_is...iniconfig.html
Ответить с цитированием
  #2  
Старый 04.09.2019, 20:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А нафига так? В чем преимущество перед стандартным компонентом?
Ответить с цитированием
  #3  
Старый 05.09.2019, 08:25
kandiral kandiral вне форума
Прохожий
 
Регистрация: 04.09.2019
Сообщения: 2
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
А нафига так? В чем преимущество перед стандартным компонентом?

А где вы видели стандартный компонент для работы с ini файлами? Есть класс TIniFile, я его и использую в своем компоненте. Мой компонент делает проще работу с ini файлами. И если вы смотрели пример, то я уже пошёл дальше и сделал набор визуальных интерактивных компонентов к которым достаточно подключить мой конфигурационный параметр и они сами сохраняют данные в ini файл.

То есть я преследую задачу уменьшить количество кода при разработке программ. И в моём примере форма настроек с сохранением данных в конфигурационный файл имеет всего один метод с двумя строками кода.
Ответить с цитированием
  #4  
Старый 05.09.2019, 19:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, ты заменяешь несколько строчек сохранения/чтения ini-файла на кучу кода, который скрыт от основной программы. Т.е. с точки зрения бинарника кода становится на самом деле больше (кстати, dfm это тоже код, хотя и не прямой), и памяти используется больше. Да, особенно на последних версиях компилятора это уже совсем не критично, и все-таки...
Плюс ты вводишь ограничения на типы сохраняемых данных.
Плюс при прямом использовании TIniFile я могу всегда его заменить на TRegIniFile (с минимальными правками своего кода) и получить сохранение параметров в реестр.

Ну и плюс ко всему, ini-файл нынче не в моде.
По умолчанию он пытается писать в %WindowsHome%, а теперь запись туда запрещена (можно обойти, если поставить в манифесте запрос административных прав, но тогда винда будет запрашивать подтверждение при запуске программы, это тоже можно обойти, но какой обычный пользователь это будет делать... Нет, если ты пишешь программу только для себя, то все ОК). Запись в папку программы, если она установлена стандартым способом в %ProgramFiles%, тоже запрещена. Т.е. там надо писать в %UserHome%.

"Не пойми меня праильно". Я не то, что бы огульно критикую. Если тебе действительно удобно работать с визуальным редактором, а не написать немного кода, дело твое. Наверняка найдутся еще люди, которые считают так же. Т.е. воспринимай то, что я написал выше, как советы к доработке. Например, по поводу custom типов (я, например, очень часто создаю перечислимые типы для некоторых параметров, там приходится писать небольшой код для корректрого сохранения/чтения). Как ты решаешь такую проблему?

ЗЫ. Я обычно создаю класс для хранения параметров. У этого класса есть пара методов Save/Load. Соответственно, весь код в одном месте, из основной программы только вызов этих методов.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter