Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Проектирование строки состояния

Читайте также:
  1. IV. АНАЛИЗ СОСТОЯНИЯ ВНУТРЕННЕГО И ВНЕШНЕГО РЫНКОВ
  2. Алгоритм поиска подстроки Кнута-Морриса-Пратта (на основе префикс-функции)
  3. Алгоритм поиска подстроки, основанный на конечных автоматах
  4. Анализ размещения капитала и оценка имущественного состояния
  5. Анализ фактического состояния в области развития малого предпринимательства
  6. Анализ фактического состояния малого предпринимательства в Вышневолоцком районе
  7. Анализ фактического состояния малого предпринимательства в Кашинском районе

Строка состояния (status bar) — это панель в нижней части окна, предназна­ченная для вывода вспомогательной информации: параметров документа, с которым работает пользователь, подсказок к пунктам меню и т. д. В C++Builder она организуется с помощью компонента StatusBar, расположенного в па­литре компонентов на странице Win32 (см. рис.).

Шаг 34. Опустите компонент на форму и дайте ему имя StatusBar. Следующая таблица (4.8) знакомит вас с основными свойствами компонента StatusBar.

Таблица 4.8. Важнейшие свойства компонента StatusBar.

Свойство Описание
Align   Panels   SimplePanel   SimpleText     SizeGrip Способ выравнивания строки состояния в пределах владельца (формы или компо­нента). Информационные панели, отображаемые на строке состояния. Если равно true, то вместо информационных панелей на строке состояния отобра­жается одна простая строка текста, хранящаяся в свойстве SimpleText. Строка текста, отображаемая в строке состояния, когда свойство SimplePanel равно true. Если равно true, то в правом нижнем углу строки состояния рисуется "гармошка" работающая как размерная рамка.

 

Как только вы добавили на форму строку состояния, она тут же прижимается к нижнему краю формы и растягивается по всей ее ширине (см. рис.).

Измените ширину формы. Строка состояния тоже корректирует свою ширину и всегда занимает всю нижнюю часть формы. Такое поведение обеспечивает свойство Align, которое в компоненте StatusBar по умолчанию установлено в значение alBottom. Свойство Align есть во многих визуальных компонентах C++Builder. С его помощью вы можете заставить компонент подгонять свои размеры и положение при изменении размеров своего владельца (формы или компонента, на которых он находится). Возмож­ные значения свойства Align описаны в таблице 9.

Таблица 9. Значения свойства Align.

Значение Описание
АlNone   alTop   alBottom   alLeft   alRight   alClient Позиция и размеры компонента остаются неизменными в пределах владельца. Компонент прижимается к верхнему краю владельца и растягивается по всей его ширине. Компонент прижимается к нижнему краю владельца и растягивается по всей его ширине. Компонент прижимается к левому краю владельца и растягивается по всей его высоте. Компонент прижимается к правому краю владельца и растягивается по всей его высоте. Компонент подгоняется под размеры владельца.

Обратите внимание, что некоторые компоненты могут содержать другие компоненты, и свойство Align дает возможность не вычислять заново координаты компонен­т при изменении размеров формы.

Шаг 35. Приспособим строку состояния для отображения размеров картинки и имени файла, в котором картинка хранится на диске. С этой целью разобьем строку состояния на две информационные панели. Выберите в инспекторе объектов свойство Panels и щелчком мыши на многоточии в значении свойства откройте редактор панелей:

Шаг 36. В этом окне создаются, редактируются и удаляются панели строки состояния. Создайте первую панель щелчком на кнопке Add и установите ее свойства так, чтобы она получилась шириной 70 пикселов (Width = 70), продав­ленной (Bevel = plLowered) и с центрированным текстом (Alignment = taCenter). В этой панели будут отображаться размеры картинки:

 

Шаг 36.1. Аналогично создайте вторую панель неограниченной ширины (Width = -1), продавленной (Bevel = lpLowered) и с прижа­тым влево текстом (Alignment = taLeftJustify). В ней будет отображаться имя файла:
Шаг 36.2. За­кройте редактор панелей. Строка состояния проектирована. Теперь можно вывести на нее текст. Доступ к панелям обеспечивает свойство Panels строки состояния. Объект Panels содержит массив Items, элементами которого являются объекты-панели. Каждая панель имеет свойство Text, в котором хранится отображаемый на панели текст. Установка содержимого строки состояния в нашем приме­ре будет выглядеть так:

 

StatusBar->Panels->Items[0]->Text =

IntToStr(Image->Picture->Width)+ " х " +

IntToStr(Image->Picture->Height);

StatusBar->Panels->Items[1]->Text = OpenDialog->FileName;

 

Для вывода информации на первую панель (с индексом 0) ипользуется функция IntToStr, преобразующая целое число в строку. Перегруженная операция сложения объединяет строки в единую строку.

Шаг 37. Обновление строки состояния оформите в виде личного (private) член-функции UpdateStatusBar() класса TPictureForm. В заголовочном файле формы вставьте в часть private класса объявление этой функции:

А саму функцию вставьте в конец файла Main.cpp:

 

//-----------------------------------------

void TPictureForm:: UpdateStatusBar()

{

if (Image->Width!= 0) //в компоненте Image есть картинка

{

StatusBar->Panels->Items[0]->Text = IntToStr(Image->Picture->Width)+" х " + IntToStr (Image->Picture->Height);

StatusBar->Panels->Items[1]->Text=

OpenDialog->FileName;

}

else // в компоненте Image нет картинки

{

StatusBar->Panels->Items[0]->Text = "";

StatusBar->Panels->Items[1]->Text = "";

}

}

Шаг 38. Разберитесь с работой функции. Функция будет отображать в строке состояния информацию в том случае, если в компоненте Image есть картинка, что соответствует ненулевому значению свойства Width.

Вызовы функции UpdateStatusBar() поместите в обработчики команд меню Open... и Close:


Дата добавления: 2015-10-28; просмотров: 134 | Нарушение авторских прав


Читайте в этой же книге: Методические указания. | Decision Cube. | Порядок выполнения работы | Сохранение файлов проекта | Основные события формы | Порядок выполнения работы | Постановка задачи | Выполнение работы | Всплывающее меню | Прокрутка в отдельной прямоугольной области |
<== предыдущая страница | следующая страница ==>
Диалоговые окна открытия и сохранения файла| Подсказки на строке состояния

mybiblioteka.su - 2015-2024 год. (0.007 сек.)