- •Содержание
- •1. Общие положения
- •2. Основы визуального программирования
- •2.1. Структура программного модуля
- •2.2. Формы
- •2.3. Элемент управления «Поле ввода»
- •2.4. Элемент управления «Кнопка»
- •2.5. Элемент «Метка»
- •2.6. Элемент «Группа переключателей»
- •0:ShowMessage('Выбран вариант 1');
- •1:ShowMessage('Выбран вариант 2');
- •2:ShowMessage('Выбран вариант 3');
- •2.7. Элемент «Изображение»
- •2.8. Виды изображений
- •2.9. Класс tPicture
- •2.10. Класс tBitmap
- •2.11. Оператор with
- •2.12. Класс tCanvas
- •2.13. Изменение параметров изображения
- •3. Задание на курсовую работу
- •3.1. Задача №1. Расчёт подшипников на долговечность
- •Исходные данные для расчёта подшипников на долговечность
- •3.1.2. Обозначение нормальных габаритных размеров подшипников качения
- •Подшипники шариковые радиальные однорядные (гост 8338-75)
- •Подшипники шариковые радиально-упорные однорядные (гост 831-75)
- •Подшипники роликовые радиальные с короткими цилиндрическими роликами (гост 8328-75)
- •Подшипники роликовые радиально-упорные однорядные повышенной грузоподъемности (гост 27365-87)
- •3.2. Задача №2. Зубчатые зацепления
- •Основные определения зубчатых зацеплений
- •3.2.1. Методика расчета зубчатого зацепления
- •3.2.2. Конструирование цилиндрических зубчатых колес
- •Размеры фасок отверстия
- •3.2.3. Шпонки призматические
- •Размеры шпонок призматических и пазов по гост 23360-78
- •Исходные данные для расчета зубчатого колеса
- •3.3. Задача №3. Резьбовые соединения
- •3.3.1. Термины и определения
- •3.3.2. Параметры резьбы
- •Основные типы резьб
- •Исходные данные для расчета резьбовых соединений
- •3.3.3. Расчёт резьбовых соединений болтовое соединение
- •Шпилечное соединение
- •Винтовое соединение
- •Штифтовое соединение
- •4. Требования к отчету по курсовой работе
- •4.1. Состав отчёта
- •4.2. Содержание отчёта
- •Библиографический список
- •Болты с шестигранной головкой (нормальной точности) по гост 7798-70
- •Определение длины резьбы болтов
- •Винты с цилиндрической головкой по гост 1491-80
- •Винты установочные с плоским концом и прямым шлицем гост 1477-84
- •Определение длины резьбы шпилек
- •Гайки шестигранные (нормальной точности) по гост 5915-70
- •Шайбы пружинные. Г0ст 6402-70
- •Шайбы. Гост 11371-78
2.11. Оператор with
Синтаксис
WITH <Структурная переменная> DO <Оператор>
Оператор WITH применяется для упрощения доступа к свойствам структурных переменных (типа «запись», «объект» или «класс»). Действие оператора можно продемонстрировать, переписав соответствующим образом тело процедуры, приведенной в предыдущем примере.
Пример
WITH Image1.Picture.Bitmap DO
BEGIN
Width:=Image1.Width;
Height:=Image1.Height;
END;
2.12. Класс tCanvas
Класс TCanvas предоставляет средства для рисования на различных типах изображений, например на растровых изображениях, представляемых классом TBitmap. Основные используемые для рисования процедуры класса TCanvas приведены в следующей таблице.
Процедура |
Описание |
Rectangle(x1,y1,x2,y2) |
Рисование прямоугольника, левый верхний угол которого задается точкой (x1,y1), а правый нижний точкой (x2,y2). При этом внутренняя часть прямоугольника заполняется текущим цветом фона. На растровом изображении рисование прямоугольника происходит следующим образом:
При этом в прямоугольник не включаются самая правая и самая нижняя границы. |
MoveTo(x,y) |
Перемещение текущей позиции в точку (x,y) |
LineTo(x,y) |
Рисование линии из текущей позиции до точки (x,y). При этом текущая позиция перемещается в точку (x,y) |
Ellipse(x1,y1,x2,y2) |
Рисование эллипса, вписанного в прямоугольник, задаваемый точками (x1,y1), и (x2,y2)
|
Продемонстрируем использование процедур класса TCanvas на примере изображения треугольника с известными сторонами. Расположим треугольник, как показано на следующем рисунке:
,
Перепишем процедуру обработки события от нажатия кнопки Button1 из рассмотренного ранее примера.
Пример
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
a,b,c,p,s,h:Real;
BEGIN
WITH Image1.Picture.Bitmap DO
BEGIN
Width:=Image1.Width;
Height:=Image1.Height;
END;
a:=150;b:=100;c:=120;
p:=(a+b+c)/2;
s:=Sqrt(p*(p-a)*(p-b)*(p-c));
WITH Image1.Picture.Bitmap.Canvas DO
BEGIN
MoveTo(0,0);
LineTo(Round(a),0);
h:=2*s/a;
LineTo(Round(Sqrt(Sqr(c)-Sqr(h))),Round(h));
LineTo(0,0);
END;
END;
Результат работы программы представлен на следующем рисунке.
2.13. Изменение параметров изображения
При рисовании линий и фигур, рассмотренных выше, используются компоненты класса TCanvas: перо (Pen) и кисть (Brush).
Различие между пером (Pen) и кистью (Brush) заключается в следующем: перо (Pen) используется при рисовании линий или рамок, а кисть (Brush) для заполнения фигуры.
Для изменения цвета линии, необходимо изменить соответствующее свойство пера, например:
Image.Picture.Bitmap.Canvas.Pen.Color:=clRed {красный цвет пера}
Использование после этого любых процедур рисования позволит получить линии контуров красного цвета. Возможные варианты значений указанного свойства: clGreen, clBlue и т.д.
Кроме того, имеется возможность изменить толщину и тип линии:
Image.Picture.Bitmap.Canvas.Pen.Width:=2 {линия толщиной 2}
По умолчанию толщина линии равна 1.
Image.Picture.Bitmap.Canvas.Pen.Style:=psDash
{ штриховая линия }
Возможные варианты значений указанного свойства: psDot – штриховая линии их коротких штрихов, psDashDot – штрихпунктирная линия. По умолчанию свойство имеет значение psSolid – сплошная линия.
Для заполнения внутренней области фигур (прямоугольника, эллипса и т.п.) используется кисть (Brush). Цвет кисти задается следующим образом:
Image.Picture.Bitmap.Canvas.Brush.Color:=clGreen
{ зеленый цвет кисти }
Кроме того, имеется возможность задать вид заполнения внутренней области:
Image.Picture.Bitmap.Canvas.Brush.Style:= bsFDiagonal
{ диагональная штриховка }
Возможные варианты значений указанного свойства:
Значение |
Образец |
Значение |
Образец |
bsSolid |
|
bsCross |
|
bsClear |
|
bsDiagCross |
|
bsBDiagonal |
|
bsHorizontal |
|
bsFDiagonal |
|
bsVertical |
|