MDIBar for Delphi and Win32(*) (Windows 95/98, Windows NT/2000, Windows ME)

©Комиссаров А.В., Россия, г.Калуга, 2002 -- Версия 2.0 beta 3

Все права на данную компоненту и пример, включая исходные тексты, принадлежат автору.

СКАЧАТЬ ДЕМО, EXE-файл (ZIP=245K) (пример использования)!

СКАЧАТЬ КОМПОНЕНТУ (Delphi), ZIP=12K!

СКАЧАТЬ ДЕМО, исходный текст Delphi (пример использования), ZIP=16K!




Создано с использованием среды разработки Borland Delphi 6.0 © Borland International, 1983-2001

Некоторые идеи обработки сообщений в случае многооконного интерфейса, анимации были заимствованы у компонента
TElegantMDI © Zecos Software, 1999-2002.

Все права на упомянутые программные продукты и исходные тексты принадлежат их авторам.

Особая благодарность фирме "Версия-Т" (г.Калуга) за требования, предъявленные к компоненте.

---Внимание!

- На заголовке главного окна обновляется кол-во дочерних окон
только при изменении размера главного окна (только в демонстрационном примере!).

(*)Компонента пока не поддерживает графические нововведения Windows XP,
поэтому в свойствах запуска программ, ее использующих,
следует отключать визуальные эффекты на вкладке "Совместимость" диалогового окна "Свойства".

- Помещать обычную панель инструментов (ToolBar) на форму следует в последнюю очередь
(в случае, если MDIBar и ToolBar размещены в одной части экрана (вверху либо внизу)).

*****СВЕДЕНИЯ О КОМПОНЕНТЕ******


*Назначение и область применения

Компонента предназначена для удобного управления дочерними окнами MDI- приложения.
Представляет собой одну или несколько полос (в зависимости от режима работы и количества открытых дочерних окон)
в верхней или нижней частях главного окна, на которые по мере создания дочерних окон помещаются кнопки,
логически связанные с этими окнами. Внешний вид и поведение данной компоненты схожи с внешним видом и поведением
обычной панели инструментов Windows- приложения, с тем исключением, что возможна различная ширина кнопок
и многополосный режим.
Компонента допускает смену изображений кнопок, а также шрифта в run-time (т.е. во время исполнения).
Кроме того, компонента реагирует на событие изменения размера главного окна.

*Иерархия

Модуль mdibar.pas
Основной компонент: TMDIBars

TMDIBars <-- TSuperToolBars <-- TSpecPanel <|- TCustomPanel <-- TCustomControl <-- TWinControl <-- ...
TSpecButton <|- TSpeedButton <-- TGraphicsControl <-- TControl <--...
TChild <|- TObject

Компонент TMDIBars добавляет (вместе с TChild) логику, связанную с многооконной работой,
класс TSuperToolBars отвечает за визуальное представление.

Классы TSpecPanel и TSpecButton представляют собой панели и кнопки, адаптированные для работы
в классе TSuperToolBars.

Класс TSuperToolBars опубликовывает (published) следующие свойства TCustomPanel:

Align;
Alignment;
BevelInner;
BevelOuter;
BevelWidth;
BorderWidth;
BorderStyle;
Color;
Ctl3D;
Enabled;
Font;
(обработчик события OnFontChange модифицирован так, чтобы изменять шрифт кнопок)
ParentShowHint;
PopupMenu;
ShowHint;
Visible;
OnEnter;
OnExit;
OnClick;
OnDblClick;
OnMouseDown;
OnMouseMove;
OnMouseUp;

Помимо этого, он вводит новые (по отношению к TCustomPanel) свойства:

Flat - признак плоских кнопок
ButtonHeight - высота кнопки в пикселах
FitWholeCaption - если true, то компонента будет, если это возможно, по возможности
AllowMultiBars - признак, позволяющий задать многополосный режим работы
Images - ссылка на экземпляр компонента TImage, хранящий изображения для кнопок (номер в списке изображений определяется свойством Tag соответствующего дочернего окна)
Removable - разрешить/запретить сворачивание панелей, когда мышь вне поля панелей
DefaultButtonWidth - ширина кнопки по умолчанию
DefaultButtonMargin - свойство Margin кнопки по умолчанию
DefaultButtonSpacing - свойство Spacing кнопки по умолчанию
ButtonWidthCorrection - аддитивная коррекция ширины кнопки
GapBetweenButtons - расстояние между кнопками в пикселах
MinButtonWidth - минимальная ширина кнопки
MinPanelHeight - минимальная высота панели (соответствует свернутому состоянию панели)
ZeroTolerance - 'допуск нуля' в пикселах, определяет часть кнопки, которая может быть скрыта за правой границей экрана
PutDividors - признак, разрешает/запрещает использование разделителей между кнопками
DividorStyle - стиль разделителя (TBevelStyle)
AnimateIntervalCount - количество интервалов при анимации сворачивания/разворачивания панели. Если 0, то анимация запрещена. Чем выше данное значение, тем ниже скорость анимации.
____________________________________________________________________________________________________________________________

Описание некоторых методов раздела public:

DisableControls - временно запретить размещение и перерисовку компонентов (действует до вызова EnableControls);
EnableControls - разрешить размещение, перерисовать.
CloseAllChilds - закрыть все дочерние окна


© Комиссаров А.В. - Калуга, Россия, 2002.

X