На этом шаге мы рассмотрим компоненты 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-файла. В большинстве случаев достаточно поместить компонент из палитры в форму - необходимые действия будут происходить автоматически при показе/скрытии формы.
Свойство | Описание |
---|---|
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:
|
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.