- •Лабораторная работа №1
- •Методические указания.
- •Панель инструментов содержит стандартный набор значков «быстрых кнопок», а палитра компонент открыта на вкладке Standard.
- •Шаг 10. В теле функции наберите строку:
- •Аналогично перетащите кнопки Copy, Paste, Undo и разместите на поле панели инструментов:
- •Лабораторная работа № 2
- •1. Цель работы
- •2. Порядок выполнения работы
- •2.1. Консольное приложение
- •2.2. Понятие класса
- •2.3. Настройка панели инструментов
- •2.4. Добавление кода
- •2.5. Сохранение файлов проекта
- •2.6. Метки класса
- •2.7. Создание объекта класса в динамической памяти
- •2. Порядок выполнения работы.
- •3. Методические указания.
- •4. Задания к лабораторной работе
- •4.1. Порядок выполнения работы.
- •4.2. Методические указания.
- •5. Содержание отчета
- •6. Контрольные вопросы
- •Литература
- •Лабораторная работа №3
- •1. Цель работы
- •2. Постановка задачи
- •3. Порядок выполнения работы
- •Основные свойства формы
- •Основные события формы
- •Основные события компонента tButton:
- •4. Задания к лабораторной работе
- •Варианты заданий
- •5. Содержание отчета по лабораторной работе
- •6. Контрольные вопросы
- •Лабораторная работа №4
- •Цель работы
- •Порядок выполнения работы
- •Форма 1
- •Форма 2
- •Форма 3
- •Методические рекомендации по выполнению задания «Калькулятор»
- •Методические материалы по теме «Медиаплеер»
- •2.Постановка задачи:
- •3.Порядок выполнения задания:
- •Методические рекомендации к выполнению задания «Просмоторщик рисунков»
- •Создание меню
- •Шаг 12.1. По аналогии с созданием пункта Toolbar1 создайте самостоятельно пункт меню Statu Bar1 для отображения или закрытия панели состояния
- •Запрещенные пункты меню
- •Всплывающее меню
- •Диалоговые окна открытия и сохранения файла
- •Проектирование строки состояния
- •Подсказки на строке состояния
- •Прокрутка в рабочей области формы
- •Прокрутка в отдельной прямоугольной области
- •Полосы прокрутки
- •Кнопки-инструменты
- •Картинки на кнопках
- •Взаимоисключающие кнопки
- •Обработка нажатий кнопок
- •Подсказки к кнопкам
- •Управление видимостью панели инструментов
- •Методические материалы по теме «Текстовый редактор»
- •Методические материалы выполнения задания «Графический редактор»
- •2.Постановка задачи:
- •1. Основные теоретические сведения
- •1.1. Работа с ядром пакета прикладных программ mathlab
- •Выражение
- •Элементарные функции в mathlab (Большими буквами обозначены массивы, малыми – элемент массива или число)
- •Первой строки на три (б), объединение 3-й и 2-й строк (в)
- •Name(список_параметров)
- •Var1-выражение
- •1.2. Работа с пакетом Control System Toolbox
- •Создание объекта в tf-форме. Пусть требуется создать объект с передаточной функцией вида
- •Исследование переходной функции и весовой функции
- •Исследование реакции на произвольно заданное воздействие
- •Исследование афчх – амплитудно-фазовой частотной характеристики
- •Исследование лчх – логарифмических частотных характеристик
- •2. Порядок выполнения лабораторной работы
- •2.2. Содержание отчета
- •3. Контрольные вопросы
Проектирование строки состояния
Строка состояния (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: