- •Лабораторная работа №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. Контрольные вопросы
Основные события компонента tButton:
OnClick – происходит при нажатии кнопки мышки.
OnEnter – происходит при получении фокуса ввода.
Шаг 17. Откройте заголовочный файл формы Uint1.h и убедитесь, что после метки __published: добавлена строка TButton *Button1;
Шаг 18. В Инспекторе объектов задайте свойству Caption значение “суммировать”:
Шаг 19. Теперь необходимо определить функции отклика на соответствующие события. Начните с отклика на нажатие кнопки на второй форме. Для этого перейдите в Инспекторе объектов на вкладку Events (события):
И двойным щелчком левой кнопки мыши на поле OnClick, соответствующего событию нажатия кнопки, откройте функцию отклика в файле Uint2.cpp:
Шаг 20. Добавьте следующий код в тело функции отклика:
Шаг 21. Рассмотрите назначение и последовательность операторов:
Объявите целую переменную статического типа
static int sum=0;
Объявите символьный массив
char s[80];
Объявите целую переменную
int a;
Введите из поля редактора текста с указателем Edit1 текстовую строку, которую необходимо преобразовать к целому числу. Для этого воспользуйтесь знакомой функцией ввода из символьной строки sscanf(), объявленнной в файле stdio.h
sscanf(Edit1->Text.c_str(),"%d",&a);
Обратите внимание на запись Edit1->Text.c_str().
Когда компонента перенесена на поле формы, то динамически создается объект класса ТEdit1. Указатель на этот объект с именем Edit1 передается в приложение и объявляется в заголовочном файле формы Uint2.h после метки __published: TEdit *Edit1;
Указатель Edit1 является член-данным класса TForm2 второй формы и доступен каждой функции класса TForm2, в том числе и функциям отклика. Поскольку объект класса ТEdit1 задается через указатель Edit1, то доступ к членам класса ТEdit1 должен осуществляться через операцию (->). Text является свойством класса ТEdit1, поэтому запись Edit1->Text означает чтение значения этого свойства. Любые изменения текста в поле компоненты Edit1 приведут к изменению значения свойства Text.
Текст читается из поля редактора текста в формате AnsiString. Для того, чтобы его преобразовать к формату обычной символьной строки, необходимо использовать функцию c_str(). Таким образом, запись Edit1->Text.c_str() соответствует значению свойства Text в формате обычной символьной строки.
Найдите сумму
sum=sum+a;
Выведите сумму в символьную строку s
sprintf(s,"%d", sum);
Присвой те значение символьной строки свойству Text
Edit2->Text = s;
Внимание! Не забудьте подключить знакомый файл stdio.h:
Шаг 22. Обратите внимание на то, что объявление функции Button1Click()
void __fastcall Button1Click(TObject *Sender);
вставлено в описание класса TForm1 автоматически.
Шаг 23. Перейдите к первой форме и добавьте обработчик события OnClick (нажатие любой кнопки мыши). Для этого в Инспекторе объектов щелкните мышью на вкладке Events, а затем на правом поле события OnClick:
Откликом на событие должен быть показ второй формы. Для этого нужно вызвать метод формы Show(), если форму необходимо показать немодально, или ShowModal(), если – модально. Добавьте вызов второй формы, как
Form2->Show();
Шаг 24. Теперь необходимо подключить вторую форму к первой. Для этого необходимо подключить заголовочный файл второй формы к файлу Uint1.cpp первой формы. Это можно сделать вручную, добавив строку
#include "Uint2.h"
Кроме того, подключить форму Form2 к форме Form1 можно командой главного меню File | Include Unit Hdr... При этом окно файла Uint1.cpp формы Form1 в редакторе кода должно быть активным. В появившемся диалоговом окне нужно выбрать заголовочный файл Uint2.h, соответствующий подключаемой форме.
В файле Uint1.cpp автоматически добавится необходимая строка:
#include "Uint2.h"
Шаг 25. Теперь для первой формы добавьте обработчик события OnDestroy, соответствующий закрытию главной формы, а, следовательно, и закрытию приложения.
Для корректного закрытия приложения необходимо вызвать функцию Terminate() класса ТАpplication. Для этого в функцию отклика добавьте строку:
Application->Terminate();
Шаг 26. Сохраните проект и запустите приложение на выполнение. Вы увидите главную форму приложения. Щелкните кнопкой мыши на поле формы, чтобы реализовать сценарий работы с приложением. Появится вторая форма приложения. Наберите нужное число, например, 25 в поле первого редактора текста и щелкните мышью на поле кнопки:
Шаг 27. Попробуйте изменять значения свойств из приложения. Например, измените цвет поля «Результат». Это можно сделать в конструкторе второй формы, добавив строку
Edit2->Color=clGreen;
Шаг 28. Запустите приложение на выполнение и, щелкнув мышью на поле первой формы, получите измененную вторую форму:
Шаг 28. Закройте приложение и для компоненты Edit2 второй формы установите свойство Visible в значение false,
т.е. компонент Edit2 должен быть невидимым при появлении второй формы. Запустите приложение на выполнение и покажите вторую форму, на которой компонент Edit2 не будет показан:
Шаг 29. Закройте приложение и измените отклик на нажатие кнопки так, чтобы компонента Edit2 становилась видимой и в ее поле результат появляется только тогда, когда в поле Edit1 набрано число, большее 10. Запустите приложение на выполнение. Если число больше 10, например, 25, то появится компонента Edit2 c результатом. Если число меньше 10, то компонента Edit2 станет опять невидимой:
Шаг 30. Добавьте две строки в код функции отклика на нажатие кнопки так, чтобы изменялся шрифт и размер надписи на кнопке, если число больше 10:
Button1->Font->Name="System";
и восстанавливался, если число будет меньше 10:
Button1->Font->Name="MS Sans Serif";
Окончательно функция отклика будет такой:
//-------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
static int sum = 0;
char s[80];
int a;
sscanf (Edit1->Text.c_str(),"%d",&a);
sum=sum+a;
if (a >= 10)
{
Edit2->Visible = true ;
Button1->Font->Name="System";
}
else
{
Edit2->Visible = false;
Button1->Font->Name="System";
}
sprintf (s,"%d",sum);
Edit2->Text = s;
}
//-------------------------------------------------------------------