- •Лабораторная работа №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. Контрольные вопросы
Методические материалы выполнения задания «Графический редактор»
1.Цель задания:
Создание простейших приложений на Borland C++ Builder 6 c использованием компоненты PageControl (набор вкладок) на тему «Графический редактор»
.
2.Постановка задачи:
Создать приложение, демонстрирующее организацию многодокументного интерфейса с помощью компоненты PageControl. Полученная программа является простейшим графическим редактором, основанным на методах, рассмотренных в курсе лекций и на лабораторных работах, поэтому вопросы, касающиеся процесса работы с изображениями здесь не рассматриваются.
В нешний вид работающего приложения показан на рисунке 1.
Наряду с набором вкладок в данном проекте были использованы компоненты CSpinEdit и CColorGrid со страницы Samples палитры компонентов Builder. Первая используется для задания толщины, а вторая – для задания цвета рисуемых линий.
При нажатии мышью на вкладке устанавливаются параметры рисования (толщина и цвет линий). Этот обработчик сопостовляется с каждой созданной вкладкой TTabSheet. В теле функции ImageMouseDown, которую мы создали сами, задаются параметры рисования.
canv->Pen->Width = SpinEdit->Value;
canv->Pen->Color = ColorGrid->ForegroundColor;
Предполагая, что первый элемент массива Controls[] активной вкладки является указателем на TImage, получаем его и указатель на его свойство Canvas.
TCanvas * canv = ((TImage*)PageControl1->ActivePage->Controls[0])->Canvas;
Создаем еще одну функцию ImageMouseMove .В ее теле проверим условие :
if (Shift.Contains(ssLeft)), т е проверяем нажата ли левая кнопка мыши. Если оно выполняется, то переходим к функции canv->MoveTo(X, Y); Ей передаются начальные координаты мыши. Следующая за ней функция
canv->LineTo(X,Y); продолжает линию к новому месту.
Создадим еще одну функцию ShowHint для вывода длинной подсказки в строке состояния statusbar .
StatusBar1->SimpleText = Application->Hint;
Создадим еще одну функцию CreateTab и в ней динамически создадим указатель на объект класса TTabSheet:
TTabSheet * tab = new TTabSheet(this);
Если нам нужно открыть файл то обязательно создается новая вкладка. Сделаем вкладку активной и создадим рисунок.
Наши события должны обрабатываться соответствующими функциями:
image->OnMouseMove = ImageMouseMove;
image->OnMouseDown = ImageMouseDown;
В инспекторе объектов зададим нашей компоненте свойство AllClient и, таким образом PageControl отображается на всей клиентской области.
Если наш файл существует,то можно загрузить картинку.Тогда мы увидим:
Добавим обработчик события, возникаюшего при изменении размеров вкладки:
tab->OnResize = TabResize;
Теперь заполним тело функции TabResize.Для начала получим указатель на TImage:
TImage * image = (TImage*)PageControl1->ActivePage->Controls[0];
А затем зменим размеры Bitmap' а, присвоив их ширине и высоте клиентской части:
image->Picture->Bitmap->Width =
PageControl1->ActivePage->ClientWidth;
image->Picture->Bitmap->Height =
PageControl1->ActivePage->ClientHeight;
Далее, для большего удобства создадим на панеле собственные кнопки:New,Open,Save,Save as…,Close.
Для кнопки New рассмотрим следующую конструкцию:
static int count = 1;
String str = "Безымянный";
str = str + count++;
this->CreateTab(str);
Имеется статическая переменная целого типа, равная 1.Наш первый файл будет иметь имя Безымянный1,а далее будет по счетчику прибавляться 2,3,4,5…
С помощью стандартных диалогов OpenDialog,SaveDialog , открываем файлы,предварительно проверяя условие о существовании файла.Также и сохраняем файл:
image->Picture->SaveToFile(SaveDialog->FileName);
Выход из программы осуществим с помощью события ExitItemClick функцией Close().
Приложение 1. Свойства компоненты TPageControl
Объявленные в классе TPageControl
ActivePage Указатель на TTabSheet - текущая вкладка набора.
PageCount Для чтения. Общее число вкладок.
Pages Для чтения. Массив из указателей на TTabSheet. Позволяет получить доступ к любой вкладке.
Унаследованные от TCustomTabControl
Canvas Для чтения. Канва элемента управления.
HotTrack Определяет, подсвечиваются ли заголовки вкладок при наведении мыши.
Images Указатель на TCustomImageList. Список изображений, которые будут отображаться на заголовках вкладок.
MultiLine Определяет, можно ли отображать заголовки вкладок в несколько рядов.
OwnerDraw Определяет, можно ли рисовать на элементе управления.
RaggedRight Определяет, будут ли вкладки или ряды растягиваться, чтобы занять всю доступную ширину. Работает при MultiLine = = true.
ScrollOpposite Работает при MultiLine = = true. Если true, то ряды с заголовками предыдущих вкладок отображаются внизу.
Style Стиль отображения заголовков вкладок. Может принимать значения:
tsTabs стандартные вкладки
tsButtons кнопки
tsFlatButtons плоские утапливаемые кнопки
TabHeight Высота заголовков вкладок.
TabPosition Определяет положение заголовков вкладок. Может принимать значения
tpTop наверху
tpBottom внизу
tpLeft слева
tpRight справа
TabWidth Ширина заголовков вкладок.
Методы компоненты TPageControl
CanShowTab Задает возможность доступа к вкладке с заданным номером.
Change Отвечает на все изменения набора вкладок.
DoAddDockClient Выполняет необходимые действия, когда какой-то элемент управления перетаскивается на PageControl. Например, присваивает свойству Parent этого элемента активную вкладку.
DockOver Определяет, можно ли вставить перетаскиваемый на PageControl элемент управления.
DoRemoveDockClient Выполняет необходимые действия, когда элемент управления с помощью Drag and Drop убирается с PageControl' а. Этими тремя методами точно не пользовались.
FindNextPage Возвращает следующую или предыдущую вкладку относительно заданной.
GetChildren Вызывает заданную процедуру для каждой вкладки (не пользовались).
GetImageIndex Задает картинку для страницы с заданным номером. Можно переопределить в производном классе (не пользовались).
GetPageFromDockClient Возвращает указатель на страницу, куда переместили с поиощью Drag and Drop какой-то элемент управления (не пользовались).
GetSiteInfo Возвращает информацию о возможностях PageControl' а для процедур Drag and Drop (Непонятно и не пользовались)
SetChildOrder Задает порядок записи или чтения страниц при работе с потоками (не проверяли).
SelectNextPage Переходит к следующей или предыдущей видимой странице.
ShowControl Показывает заданную страницу, но непонятно как.
События компоненты TPageControl
OnChange Возникает при выборе новой страницы.
OnChanging Возникает перед тем, как будет выбрана новая страница.
OnDrawTab Возникает перед тем, как страница будет перерисована.
OnGetImageIndex Возникает перед выбором картинки, которую необходимо отобразить на заголовке вкладки.
Свойства компоненты TTabSheet
ImageIndex Номер картинки для заголовка. Картинка берется из списка, принадлежащего PageControl' у.
PageControl Набор, в котором содержится страница.
PageIndex Номер страницы в наборе.
TabIndex Для чтения. Номер страницы в наборе видимых. Если -1, страница невидима.
TabVisible Определяет, видима ли страница в наборе.
Методы компоненты TTabSheet
DoHide Генерирует событие OnHide. Можно переопределить в потомке.
DoShow Генерирует событие OnShow. Можно переопределить в производном классе.
События компоненты TTabSheet
OnHide Возникает при задании свойству Visible страницы значения false.
OnShow Возникает при задании свойству Visible страницы значения true.
Остальные свойства, методы и события унаследованы от TWinControl и остальных и не являются специфичными для этих компонент.
Лабораторная работа № 6
«Ззнакомство со средой MATLHAB. Освоение программного обеспечения для исследования систем автоматического управления».
Цель работы: Получить начальные сведения о системе MATHLAB и пакете Control System Toolbox и навыки работы с ними.
Содержание работы:
1. Изучение командного окна ППП MATHLAB.
2. Изучение возможностей ядра ППП MATHLAB для выполнения вычислений.
3. Изучение графических возможностей ППП MATHLAB.
4. Изучение возможностей создания и использования m-файлов.
5. Изучение возможностей приложения Control System Toolbox для исследования систем автоматического управления.