Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2_ИСР_C++Builder6_a5.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.72 Mб
Скачать
  1. Диалоговое окно, вызываемое функцией 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, который делает фон прозрачным.

Функция CanvasText распечатывает текст, начиная с позиции, заданной перемещенными 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, которое представляет собой матрицу CanvasPixels[int X][int Y], каждая точка которой определяет цвет пикселя на канве.

Координаты в пикселях левого верхнего угла канвы – [0][0], правого нижнего – [W – 1][H – 1], где W и H – соответственно ширина и высота компонента. То есть экранная ось OY направлена вниз.

Для того, чтобы отобразить на канве фрагмент графика, мы должны «натянуть» на канву прямоугольник [xmin, xmax]×[ymin, ymax], то есть перейти в другую систему координат.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]