
- •Лабораторная работа № 2 – самостоятельная подготовка
- •Теоретические сведения Основные компоненты интегрированной среды разработки
- •Палитра инструментов
- •Окно редактора кода
- •Окно инспектора объектов
- •Примеры программирования.
- •Диалоговое окно, вызываемое функцией MessageDlg.
- •Система координат графика и её положение на канве
- •Оси абсцисс графика (0x) и канвы (0x)
- •Оси ординат графика и канвы
- •Контрольные вопросы
- •Требования к отчету
- •Варианты заданий
Диалоговое окно, вызываемое функцией MessageDlg.
При возникновении определенного события операционная система сопровождает передачу сообщения о событии несколькими служебными информационными битами. Например, при нажатии кнопки мыши программа получает данные о том, где произошло событие и какая именно кнопка мыши была нажата. Доступ к этой информации можно получить в окне Object Inspector (вкладка Events).
Пример 3. Обработка событий OnMouseDown.
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if (Shift.Contains(ssRight))
{
Canvas->Brush->Style = bsClear;
Canvas->TextOut(X, Y, "MouseRightKey");
}
}
Каждый раз при нажатии правой кнопки мыши на экране появляется надпись MouseRightKey. При этом устанавливается стиль кисти bsClear, который делает фон прозрачным.
Функция CanvasText распечатывает текст, начиная с позиции, заданной перемещенными X и Y, где X и Y – координаты курсора мыши в момент нажатия клавиши.
Пример 4. Ввод чисел в двух разных полях и умножение введенных данных.
Открыть новое приложение и разместить в нем следующие компоненты: два окна редактирования (LabeledEdit или Edit) со страницы Additional, одну панель Panel, одну кнопку Button и одну метку Label (для подписи) со страницы Standard и одну метку(три метки в случае окна редактирования Edit).
Изменить надписи в метках компонентов на «Множимое», «Множитель», «Произведение», а свойство Caption кнопки Button на «Посчитаем!».
Обработчик нажатия кнопки имеет вид:
Panel1->Caption = LabeledEdit1->Text + " * " +
LabeledEdit2->Text + " = " +
FloatToStr( StrToFloat(LabeledEdit1->Text) * StrToFloat(LabeledEdit2->Text) );
При использовании компонента Edit LabeledEdit заменить на Edit.
Графические возможности C++Builder.
Многие компоненты в C++Builder имеют свойство Canvas, которое представляет собой графические возможности компонента.
Canvas имеют формы, компоненты Image, PaintBox, BitMap и др.
Каждая точка графического поля(канвы) имеет координаты X и Y, при этом X возрастает при перемещении слева направо, Y – сверху вниз. Здесь координаты измеряются в пикселях. Пиксель – наименьший графический объект на экране. Кроме координат пиксель имеет еще одно свойство – цвет, для описания которого используется тип TColor. Цвет можно задать с помощью предопределенных констант: clRed – красный, clBlack – черный, clGreen – зеленый и т.д. или с помощью так называемого RGB-кода:
0x00FF0000 – синий,
0x0000FF00 – зеленый,
0x000000FF – красный,
0x00000000 – черный,
0x00FFFFFF – белый.
Рисовать можно двумя способами: по пикселям и с помощью пера. При рисовании по пикселям рисунок получается дискретным, т.е. состоящим из отдельных точек, при рисовании пером – рисунок непрерывный.
При рисовании по пикселям используется свойство канвы Pixels, которое представляет собой матрицу CanvasPixels[int X][int Y], каждая точка которой определяет цвет пикселя на канве.
Координаты в пикселях левого верхнего угла канвы – [0][0], правого нижнего – [W – 1][H – 1], где W и H – соответственно ширина и высота компонента. То есть экранная ось OY направлена вниз.
Для того, чтобы отобразить на канве фрагмент графика, мы должны «натянуть» на канву прямоугольник [xmin, xmax]×[ymin, ymax], то есть перейти в другую систему координат.