TSpeedbar Component

Unit
Speedbar

Description
Компонента TSpeedbar предназначена для размещения в ваших формах настраиваемых пользователем панелей инструментов. При работе с VCL вы обычно создаете инструментальные панели, пользуясь компонентами TPanel и TSpeedButton.
Компонента TSpeedbar объединяет в себя панель и набор кнопок, который вы можете задать в режиме дизайна формы. Работа по созданию панели инструментов в форме аналогична работе по созданию полосы меню. Редактор компоненты TSpeedbar позволяет вам добавлять и удалять кнопки из компоненты, группировать их в секции (категории) и изменять набор видимых кнопок путем перетаскивания кнопок мышкой из окна редактирования на панель, как это сделано в среде Delphi. При установленных флажках sbAllowDrag и sbAllowResize в свойстве Options пользователь вашего приложения сможет перемещать панель инструментов в окне, размещая ее на различных сторонах окна (аналогично перемещению панели задач (taskbar) в Windows95), и изменять ее размеры.

В соответствии со значениями свойства Options кнопки на панели могут быть прозрачными либо нет, а также "всплывающими", т.е. границы которых отображаются только при перемещении над ними указателя мыши.
Вы можете также задать "покрытие" (обои) для панели инструментов (битовое изображение, которое будет накладываться на панель при ее отображении) с помощью свойства Wallpaper.
Компонента TSpeedbar имеет метод Customize, позволяющий пользователю динамически менять настройки панели инструментов. Вы можете сохранять настройки Speedbar'а в INI-файле или в системном регистре (для 32-разрядной версии) автоматически, задав значение свойству IniStorage, либо вручную с помощью методов SaveLayout, SaveLayoutReg
и RestoreLayout, RestoreLayoutReg
.

При создании очередных версий Вашего приложения Вы можете не захотеть, чтобы при запуске приложения пользователем из INI-файла были восстановлены сохраненные там предыдущей версией параметры. Для этого при подготовке новой версии приложения увеличьте значение свойства Version — установки из INI-файла считываются только если записанный там номер версии SpeedBar'а меньше либо равен текущему.



Declaration
property Options: TSpeedbarOptions;

Description
Свойство задает режимы работы и отображения кнопок панели инструментов.
Смысл флажков типа TSpeedbarOptions:
- sbAllowDrag — пользователь может перемещать мышью панель инструментов внутри окна-родителя, изменяя ее свойство Align.
- sbAllowResize — пользователь может изменять с помощью мыши размеры панели управления.

- sbFlatBtns — панель использует "всплывающие" кнопки, т.е. границы которых отображаются только при перемещении над ними указателя мыши.
- sbGrayedBtns — имеет смысл при установленном флажке sbFlatBtns; при этом битовые изображения "неактивных" кнопок делаются "серыми" (если картинка в свойстве Glyph содержит 5 изображений, то 5-ое используется для отображения неактивной кнопки, если же меньше, то соответствующая "серая" картинка будет сделана автоматически)

- sbTransparentBtns — кнопки на панели являются прозрачными, через них, например, можно видеть битовое изображение, заданное свойством Wallpaper панели инструментов.
- sbStretchBitmap — изображение, заданное свойством Wallpaper, рисуется "растянутым" по всему размеру панели инструментов.

По умолчанию свойство имеет значение [sbAllowDrag, sbGrayedBtns].



Declaration
property Wallpaper: TPicture;

Description
Свойство позволяет задать картинку, которая будет покрывать клиентскую область панели инструментов. Изображение может быть растянуто на всю область (при наличии флажка sbStretchBitmap в свойстве Options), либо будет накладываться на всю видимую область панели каскадно, как "обои".



Declaration
procedure Customize(HelpCtx: Longint);

Description
Метод предназначен для настройки панели управления (TSpeedbar) пользователем во время выполнения программы. Вызов метода вызывает диалоговое окно, отображающее список всех доступных кнопок панели инструментов, разделенных по категориям. Пользуясь этим диалогом можно переместить мышкой кнопки из диалога на панель управления или удалить кнопки с панели управления опять же с помощью мыши (drag-and-drop). Вы можете воспользоваться методом SaveLayout для сохранения текущих установок компоненты TSpeedbar в INI-файле, и методом RestoreLayout для восстановления этих установок из INI-файла.



Declaration
procedure SaveLayout(IniFile: TIniFile);

Description
Метод служит для сохранения в INI-файле установок компонентов TRxDBGrid (таких как порядок и ширины столбцов) и TSpeedbar (набор и расположение кнопок на панели инструментов), для последующего восстановления с помошью метода RestoreLayout.

Данные о текущих установках компоненты записываются в специфицированный INI-файл в секцию с именем, возвращаемым функцией GetDefaultSection.
Если Вы задали значение свойству IniStorage, то настройки могут сохраняться и восстанавливаться автоматически.



Declaration
procedure RestoreLayout(IniFile: TIniFile);

Description
Метод служит для восстановления из INI-файла установок компонентов TRxDBGrid (таких как порядок и ширины столбцов) и TSpeedbar (набор и расположение кнопок на панели инструментов), если они были сохранены там с помошью метода SaveLayout.

Текущие установки не изменяются, если специфицированный INI-файл не содержит данных об установках компоненты.
Если Вы задали значение свойству IniStorage, то настройки могут сохраняться и восстанавливаться автоматически.



Description
Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage.

При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage).
Для TSpeedbar — это расположение кнопок на панели и положение самой панели, для TMRUManager — список строк, для TRxDBGrid — ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.



Declaration
property Version: Integer;

Description
Свойство Version служит для предотвращения считывания из INI-файла (или Windows registry) конфигурации панели инструментов (с помощью ее методов RestoreLayout или RestoreLayoutReg) при изменении разработчиком приложения набора кнопок в панели.
Если Вы не изменяете значение свойства Version, то метод RestoreLayout (RestoreLayoutReg) считывает настройки из INI-файла или registry и восстанавливает состояние панели инструментов вне зависимости от изменений в форме, произведенных разработчиком в очередной версии приложения. Вы можете при изменении версий Вашего приложения наращивать значение свойства Version — метод RestoreLayout (RestoreLayoutReg) не будет восстанавливать настройки панели инструментов, если считанное им из INI-файла или registry значение свойства Version меньше текущего.


Declaration
procedure RestoreLayoutReg(IniFile: TRegIniFile);

Description
Метод полностью аналогичен RestoreLayout, но предназначен для использования с классом TRegIniFile Delphi 2.0 для чтения/записи данных из регистрационной базы данных Windows (Registry).

Если Вы задали значение свойству IniStorage, то настройки могут сохраняться и восстанавливаться автоматически.