Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
34
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

6. Полоса состояния StatusBar

Компонент StatusBar представляет собой ряд панелей, отображающих полосу состояния в стиле Windows. Обычно эта полоса размещается внизу формы. (см. рис. 56)

рис. 56. Компонент StatusBar

Свойство SimpIePanel определяет, включает ли полоса состояния одну или множество панелей. Если SimpIePanel = true, то вся полоса состояния представляет собой единственную панель, текст которой задается свойством SimpleText. Если же SimpIePanel = false, то полоса состояния является набором панелей, задаваемых свойством Panels. В этом случае свойство SizeGrip определяет, может ли пользователь изменять размеры панелей в процессе выполнения приложения.

Каждая панель полосы состояния является объектом типа TStatusPanels. Свойства панелей вы можете задавать специальным редактором наборов. Вызвать редактор можно тремя способами: из Инспектора Объектов кнопкой с многоточием около свойства Panels, двойным щелчком на компоненте StatusBar или из контекстного меню, выбрав команду Panels Editor. В окне редактора вы можете перемещаться по панелям, добавлять новые или уничтожать существующие. При перемещении по панелям в окне Инспектора Объектов вы будете видеть их свойства.

Основное свойство каждой панели — Text, в который заносится отображаемый в панели текст. Его можно занести в процессе проектирования, а затем можно изменять программно во время выполнения. Другое существенное свойство панели — Width (ширина).

Программный доступ к текстам отдельных панелей можно осуществлять двумя способами: через индексированное свойство Panels или через его индексированное подсвойство Items.

7. Фреймы

В Delphi 5 введен новый компонент, который помогает поддерживать стилистическое единство приложения. Это Frame — фрейм. Он представляет собой нечто среднее между панелью и формой. С формой его роднит то, что он:

  • проектируется отдельно, как самостоятельное окно

  • имеет свой модуль — файл .pas

  • имеет возможности наследования, причем даже более широкие, чем у формы, так как может наследоваться даже внутри одного приложения

  • может включаться в Депозитарий и использоваться так же, как и форма, включая наследование с панелью, фрейм роднит то, что он:

  • не является самостоятельным окном Windows и может отображаться только на форме или другом контейнере

  • имеет свойства, методы, события, подобные панели, а не форме

Таким образом, фрейм — это панель, т.е. некий фрагмент окна приложения, но способный переноситься на разные формы, в разные приложения и допускающий использование преимуществ наследования. Начать проектирование нового фрейма можно командой File | New Frame или командой File | New и выбором пиктограммы Frame на странице New окна Депозитария. В обоих случаях перед вами откроется окно фрейма, подобное окну формы, а в Редакторе Кода вы увидите текст заготовки модуля фрейма:

unit Unit2;

interface // Открытый интерфейс фрейма

{Список подключаемых модулей}

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs;

{Объявление класса фрейма} type

TFrame2 = class(TFrame)

{Сюда Delphi помещает объявления компонентов, размещаемых на фрейме. Не добавляйте сюда ничего вручную} private // Закрытый раздел класса

{ Private declarations }

{Сюда могут помещаться объявления переменных, функций и процедур, включаемых в класс фрейма, но не доступных для других модулей} public // Открытый раздел класса

{ Public declarations }

{Сюда могут помещаться объявления переменных, функций и процедур, включаемых в класс фрейма. Они будут едины для всех объектов фреймов} end;

{Сюда могут помещаться объявления типов, констант, переменных, функций и процедур, к которым будет доступ из других модулей, но которые не включаются в класс фрейма. Они будут едины для всех объектов фреймов}

implementation // Реализация модуля

{$R *.DFM}

{Сюда могут помещаться предложения uses, объявления типов, констант, переменных, к которым не будет доступа из других модулей. Они будут едины для всех объектов фреймов. Тут же должны быть реализации всех объявленных в разделе interface функций и процедур, а также могут быть реализации любых дополнительных, не объявленных ранее функций и процедур}

end.

Комментарии в приведенном тексте поясняют, куда и что можно помещать в модуле. Те переменные, объявления которых вы поместите в объявление класса, будут индивидуальны для каждого объекта фрейма. Объявления имеют обычный для класса вид. Например:

A:integer;

Переменные, объявления которых вы поместите вне объявления класса, будут едины для всех объектов фрейма. Они объявляются как обычные переменные. Например:

var A:integer;

На фрейм вы можете так же, как на форму, переносить и размещать любые компоненты, устанавливать их свойства, писать обработчики их событий и т.п.

Контрольные вопросы:

  1. Какие компоненты относятся к компонентам внешнего офрмления?

  2. Для чего предназначены многостратичные панели?

  3. Приведите пример использования компонента TollBar.

  4. Чем отличается компонент PageScroller ScrollBox?

  5. Приведите пример использования компонента ControlBar.

  6. Чем отличается компонент StatusBar от компонента Panel?

  7. Для чего предназначен фрейм?

Рекомендуемая литература: 1.1, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8.