Шаг 3.
Компоненты библиотеки RX.
Вкладка RX Tools. Компоненты TFormStorage и TFormPlacement

    На этом шаге мы рассмотрим компоненты TFormStorage и TFormPlacement.

    Компонент TFormStorage сохраняет и восстанавливает размеры и положение формы, которой он принадлежит, а также может сохранить значения любых published-свойств любых других компонентов этой же формы. Компонент предназначен для работы с формами всех стилей: Normal, MDIForm, MDIChild, StayOnTop. Сохранение происходит перед уничтожением формы, а восстановление перед тем, как форма станет видимой. Необходимая информация сохраняется в INI-файле. Используемый INI-файл можно задать с помощью свойства IniFileName. Свойство Active определяет, будет ли происходить сохранение/восстановление.

    Свойство Options позволяет указать, какие параметры формы будут восстанавливаться при чтении из INI-файла. В дизайнере Delphi вы можете указать также список свойств других компонентов формы, которые будут сохраняться и восстанавливаться из INI-файла. Для хранения имен этих свойств служит свойство StoredProps. Заметьте, что может оказаться важным порядок следования имен сохраняемых/восстанавливаемых свойств, особенно при восстановлении их значений из INI-файла.

    Если вы хотите сохранять только размеры и положение формы, то воспользуйтесь компонентом TFormPlacement, являющимся предком TFormStorage и не содержащим методов для сохранения/восстановления значений свойств других компонентов формы.

    Компонент TFormPlacement сохраняет и восстанавливает размеры и положение формы, которой он принадлежит. Компонент предназначен для работы с формами всех стилей: Normal, MDIForm, MDIChild, StayOnTop и т.д. Сохранение происходит перед уничтожением формы, а восстановление перед тем, как форма станет видимой. Необходимая информация о размерах и положении сохраняется в INI-файле. Используемый INI-файл можно задать с помощью свойства IniFileName.

    Свойство Active определяет, будет ли происходить сохранение/восстановление. Свойство Options позволяет указать, какие параметры формы будут восстанавливаться при чтении из INI-файла. В большинстве случаев достаточно поместить компонент из палитры в форму - необходимые действия будут происходить автоматически при показе/скрытии формы.

Таблица 1. Свойства и методы компонентов TFormStorage и TFormPlacement
Свойство Описание
property Active: Boolean; Свойство определяет, будет ли компонента восстанавливать состояние формы при загрузке и сохранять его при уничтожении формы.
property IniFileName: string; С помощью этого свойства можно определить INI-файл, используемый для хранения информации о размерах и положении формы (для компонент TFormPlacement, TFormStorage). По умолчанию, свойство содержит пустую строку, что означает использование INI-файла приложения (имя исполнимого файла приложения, предоставляемого свойством ExeName без пути, плюс расширение '.INI'). Если файл не существует, то он будет создан. В некоторых случаях вы можете задать имя файла.
function GetDefaultIniName: string; Функция возвращает имя INI-файла "по умолчанию" для приложения. Таковым она считает имя EXE-файла (получаемое с помощью Application.ExeName) с расширением ".INI", при этом из имени удаляется путь, что задает размещение INI-файла в директории Windows.
property Options: TPlacementOptions; Значения этого свойства определяют, какие параметры формы будут сохраняться/восстанавливаться компонентами TFormStorage и TFormPlacement. Следующие значения могут быть включены в свойство Options:
  • fpState - состояние формы (нормальное, максимизированное, минимизированное);
  • fpPosition - положение и размеры формы;
  • fpActiveControl - активный элемент управления на форме (значение свойства ActiveControl формы-владельца).
property StoredProps: TStrings; (только для компонента TFormStorage) Свойство служит для сохранения списка свойств других компонентов, которые (свойства) будут сохраняться при уничтожении формы в INI-файле и восстанавливаться при ее открытии. Для сохранения доступны любые published-свойства других компонентов формы. Однако dы должны четко представлть себе, что произойдет при восстановлении значений этих свойств. Заметьте, что может оказаться важным порядок восстановления значений различных свойств из INI-файла. Редактор свойства StoredProps предосталвяет вам возможность задать порядок расположения строк в этом списке.

    Рассмотрим пример, показывающий использование компонента TFormStorage. На форму поместим компоненты: TFormStorage и TTrackBar (рис. 1).


Рис.1. Форма с размещенными компонентами

    Свойство Active компонента TFormStorage установим в True, свойству IniFileName придаем любое значение-имя нашего INI-файла, у свойства Options все параметры устанавливаем в значение True. Выбрав свойство StoredProps мы увидим окно редактора свойств (рис. 2). Для компонента TTrackBar (Components | TrackBar1) выбираем свойство Position (Properties | Position) и добавляем в список Stored Properties нажатием кнопки Add.


Рис.2. Окно редактора свойств

    После запуска нашего приложения появится окно с бегунком. Мы изменим положение окна, а так же его размеры, позицию бегунка и закроем его. Перед закрытием, в директории Windows будет создан INI-файл, в котором распологаются соответствующие свойства нашего приложения. При следующем запуске приложения, данные из INI-файла будут считаны и окно появится в той позиции экрана, того размера и с тем значением бегунка, с которыми оно было закрыто.

Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TRxWindowHook.




Предыдущий шаг Содержание Следующий шаг