Настройка программ.
Удобным средством хранения индивидуальных параметров настройки программы являются широко используемые в Windows З.х файлы инициации (файлы с расширением ini). Для Windows 32 индивидуальная настройка программ реализуется с помощью системного реестра. В этом разделе рассматриваются оба способа, т. к. даже если вы работаете с Windows 32, перенос программ на другие ПК проще реализовать с помощью ini-файлов.
Файлы инициации
Файлы инициации в Delphi связаны с объектами класса TIniFile. Эти объекты не являются глобальными и создаются программно по мере надобности. С каждой программой можно связать сколько угодно файлов инициации.
Физически файл инициации представляет собой обычный текстовый файл, который сохраняется либо в каталоге запуска программы (локальный файл), либо в каталоге запуска Windows (глобальный файл инициации). Файл содержит ряд секций, каждая из которых имеет заголовок и следующие за ним параметры. Заголовок - это произвольный английский текст, заключенный в квадратные скобки. Каждый параметр представлен строкой вида
<ИМЯ_ПАРАМЕТРА>=<ЗНАЧЕНИЕ>
[Location]
DataBase=C:\mybase Graphics=C:\BITMAP
В этом примере в секции Location файла инициации представлены два параметра с именами DataBase и Graphics. Объекты класса TiniFiie предоставляют удобные средства чтения/записи параметров по именам параметров и секций.
В объекте имеется единственное свойство Filename: String, содержащее имя файла инициации с возможным маршрутом поиска.
constructor Create(const FileNameString) ;
|
Создает объект-файл с именем FileName. Это имя автоматически переносится в свойство FileName. Если физический файл существовал, он открывается, если нет создается
|
procedure DeleteKey(const Section,
Ident: String) ;
|
Уничтожает значение параметра Ident в секции Section. Если указана несуществующая секция или имя несуществующего параметра, метод создаст секцию и/или установит в ней параметр с пустым значением
|
procedure EraseSection(const Section: String) ;
|
Удаляет секцию со всеми ее параметрами.
Если секции не существует, возникает исключительная ситуация
|
function ReadBool (const Section,
Ident:.String; Default: Boolean): Boolean;
|
Возвращает значение логического параметра Ident в секции section. Возвращает Default, если не существует указанная
секция, или в ней нет нужного параметра, или, наконец, параметр имеет не логическое значение
|
function Readlnteger(const Section, Ident: String; Default:Longint): Longint;
|
Возвращает значение целого параметра Ident в секции Section, Возвращает Default, если не существует указанная секция, или в ней нет нужного параметра, или, наконец, параметр имеет не целое значение
|
procedure ReadSection (const Section: String; Strings: TStrings);
|
Помещает в список Strings имена всех параметров из секции Section
|
procedure ReadSections (Strings:
TStrings);
|
Помещает в список Strings имена всех
секций файла
|
procedure ReadSectionValues(const Section: String; Strings: TStrings) ;
|
Помещает в список strings имена всех
значений из секции Section
|
function ReadString(const Section,
Ident, Default: String): String;
|
Возвращает значение строкового параметра Ident в секции section. Возвращает Default, если не существует указанная секция, или в ней нет нужного параметра,
или, наконец, параметр не имеет значения
|
procedure WriteBool(const Section,
Ident: String; Value: Boolean);
|
Записывает в параметр Ident секции section логическое значение value.
|
procedure Writelnteger(const Sec
tion, Ident: String; Value: Longint) ;
|
Записывает в параметр Ident секции Section целое значение Value
|
procedure WriteString(const Section, Ident, Value: String);
|
Записывает в параметр Ident секции Section строковое значение value
|
назад - Вперёд
|