Файл: Лабораторная работа 1 Часть i 13 лабораторная работа n 1 Часть ii 16 лабораторная работа n 1 Часть iii 1.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 299

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Тема 1: Знакомство с основными компонентами группы Standard. Компоненты Delphi визуальные и невизуальные. Свойства и события компонентов. Назначения и основные свойства компонентов группы Standard.

ЛАБОРАТОРНАЯ РАБОТА № 1 / Часть I /

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть II /

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 1 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 2 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III /3 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 4 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 5 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 6 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 7 вариант

ЛАБОРАТОРНАЯ РАБОТА N 1 / Часть III / 8 вариант

Тема 2: Стандартные диалоговые панели – компоненты группы Dialogs.

ЛАБОРАТОРНАЯ РАБОТА №2

Тема 3. Работа с таблицами в Delphi

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть I /

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 1 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 2 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 3 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 4 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 5 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 6 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 7 вариант

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 8 вариант

Тема 4. Графические средства Delphi

Тема 4.1 Графические компоненты

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 1

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 2

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 3

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 4

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 5

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 6

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 7

ЛАБОРАТОРНАЯ РАБОТА № 4 / Вариант 8

Тема 5. Работа с файлами в Delphi

ЛАБОРАТОРНАЯ РАБОТА № 5

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 6 вариант


Задание №1

Создайте приложение, позволяющее:

  • формировать таблицу StringGrid с 8 столбцами и 8 строками;

  • закрашивать ячейки таблицы таким образом, чтобы она выглядела как шахматная доска;

  • изменять набор цветов закраски ячеек по выбору пользователя через ColorGrid.

Задание №2

Создайте приложение, позволяющее:

  • устанавливать количество строк и столбцов таблицы StringGrid равные числам, введенным пользователем;

  • заполнить список Сombobox значениями, введёнными пользователем в ячейки таблицы;

  • изменять цвет символов в таблице на выбранный пользователем.

Задание №3

Разработать приложение, позволяющее:

  • задавать фактическую размерность одномерного массива А целых чисел в компоненте SpinEdit1 и проверять корректность ввода;

  • отображать на экране компонент StringGrid1 (количество строк – одна, количество столбцов соответствует фактической размерности массива);

  • вводить элементы массива А в ячейки таблицы StringGrid1 (обеспечив ввод в ячейку таблицы только допустимые символы, т.е. цифры и знак минус первым символом);

  • находить и визуализировать на форме:

а) количество чётных элементов массива;

б) среднее арифметическое значение отрицательных элементов массива;

в) максимальный элемент массива.

Рекомендация: Обработку корректности ввода элементов массива в ячейки таблицы StringGrid1, можно реализовать в процедуре обработки события OnKeyPress:

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

'0'. .'9', #8 : ; // цифрыи вводитьможно

#13 : if stringgrid1.Col < stringgrid1.ColCount-1 then stringgrid1.Col := stringgrid1.Col + 1; // принажатии курсорперемещаетсявследующуюячейкутаблицы

'-' : if length(stringgrid1.Cells[stringgrid1.Col, 0] ) <> 0 then key := #0; // минусможновводитьвячейку //толькопервымсимволом

else key := #0; // остальные символы запрещены для ввода

end;

end;

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 7 вариант



Задание 1

Создайте приложение, позволяющее:

  • устанавливать количество строк и столбцов таблицы StringGrid равные числам, введенным пользователем;

  • закрашивать все нечетные строки таблицы цветом выбранным пользователем.

Цвет закраски выбирается пользователем при помощи ColorGrid или ColorDialog.

Задание 2

Создайте приложение, позволяющее:

  • устанавливать количество строк и столбцов таблицы StringGrid равные числам, введенным пользователем;

  • заполнять список Combobox во время работы приложения;

  • заполнить ячейки таблицы элементами списка Сombobox;

  • изменять цвет символов в таблице на выбранный пользователем.

Задание №3

Разработать приложение, позволяющее:

  • задавать фактическую размерность одномерного массива А целых чисел в компоненте SpinEdit1 и проверять корректность ввода;

  • отображать на экране компонент StringGrid1 (количество строк – одна, количество столбцов соответствует фактической размерности массива);

  • - вводить элементы массива А в ячейки таблицы StringGrid1 (обеспечив ввод в ячейку таблицы только допустимые символы, т.е. цифры и знак минус первым символом);

  • находить и визуализировать на форме:

а) количество чётных элементов массива;

б) среднее арифметическое значение отрицательных элементов массива;

в) максимальный элемент массива.

Рекомендация: Обработку корректности ввода элементов массива в ячейки таблицы StringGrid1, можно реализовать в процедуре обработки события OnKeyPress:

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

'0'. .'9', #8 : ; // цифрыи вводитьможно

#13 : if stringgrid1.Col < stringgrid1.ColCount-1 then stringgrid1.Col := stringgrid1.Col + 1; // принажатии курсорперемещаетсявследующуюячейкутаблицы

'-' : if length(stringgrid1.Cells[stringgrid1.Col, 0] ) <> 0 then key := #0; // минусможновводитьвячейку //толькопервымсимволом

else key := #0; // остальные символы запрещены для ввода

end;

end;

ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 8 вариант


Задание №1

Создайте приложение, позволяющее:

  • устанавливать количество строк и столбцов таблицы StringGrid равные числу, введенному пользователем;

  • закрашивать все ячейки таблицы указанной строки и указанного столбца цветом выбранным пользователем.

Цвет закраски выбирается пользователем при помощи ColorGrid или ColorDialog.

Задание №2

Создайте приложение, позволяющее:

  • устанавливать количество столбцов и строк таблицы StringGrid равными числам, вводимым пользователем;

  • переместить содержимое ячеек указанного пользователем столбца таблицы StringGrid в список ListBox;

  • изменять цвет фона и символов в таблице на выбранный пользователем.

Задание №3

Разработать приложение, позволяющее:

  • задавать фактическую размерность одномерного массива А целых чисел в компоненте SpinEdit1 и проверять корректность ввода;

  • отображать на экране компонент StringGrid1 (количество строк – одна, количество столбцов соответствует фактической размерности массива);

  • вводить элементы массива А в ячейки таблицы StringGrid1 (обеспечив ввод в ячейку таблицы только допустимые символы, т.е. цифры и знак минус первым символом);

  • находить и визуализировать на форме:

а) количество чётных элементов массива;

б) среднее арифметическое значение отрицательных элементов массива;

в) максимальный элемент массива.

Рекомендация: Обработку корректности ввода элементов массива в ячейки таблицы StringGrid1, можно реализовать в процедуре обработки события OnKeyPress:

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

Case key of

'0'. .'9', #8 : ; // цифрыи вводитьможно

#13 : if stringgrid1.Col < stringgrid1.ColCount-1 then stringgrid1.Col := stringgrid1.Col + 1; // принажатии курсорперемещаетсявследующуюячейкутаблицы

'-' : if length(stringgrid1.Cells[stringgrid1.Col, 0] ) <> 0 then key := #0; // минусможновводитьвячейку //толькопервымсимволом

else key := #0; // остальные символы запрещены для ввода

end;

end;

Тема 4. Графические средства Delphi


Delphi представляет разработчику три способа отображения графики:

  1. Построение графиков во время работы программы.

  2. Использование заранее созданных графических изображений.

  3. Создание изображений при помощи графических компонентов.


Для построения графиков созданы специальные классы, предоставляющие инструменты и методы для рисования: инструменты рписаны в трех классах – TFont, TPen, TBrush; область рисования и методы предоставляет класс TCanvas.

Класс TFont – задает характеристики шрифта, которым отображается текст в канве. Свойства класса описаны в разделе «Тема 1».

Класс TPen – задает характеристики пера (карандаша), с помощью которого рисуются линии.

Свойства класса TPen:

Color: TColor –

Width: integer –

Style = (

psSolid

psDash

psDot

psDashDot

PsClear)

- определяет стиль линии.




сплошная

штриховая

пунктирная

штрих-пунктирная

невидимая




Класс TBrush – задает характеристики кисти, которой закрашиваются поверхности изображения.

Свойства класса TBrush:

Color: TColor – цвет кисти (по умолчанию белый);

Style – орнамент кисти, может принимать значения:

bsClear – отсутствует закраски;

bsVertical – вертикальные линии;

bsBdiagonal – правые диагональные линии;

bsDiagCross – косая клетка;

bsSolid – сплошная закраска;

bsHorizontal – горизонтальные линии;

bsFdiagonal – левые диагональные линии;

bsCross – клетка.

Класс TCanvas – определяет поверхность, на которой помещается создаваемое изображение, и инструменты, с помощью которых создается изображение: шрифт, карандаш, кисть.

В качестве рабочей области (канвы, «холста») по умолчанию используется вся клиентская область формы (без заголовка, главного меню и линий скроллинга формы), но можно внутри формы отводить меньшие рабочие области при помощи компонентов PaintBox или Image. Начало координаты канвы – верхний левый угол рабочей области, ширина рабочей области определяется свойством ClientWidth, высота – свойством ClientHeight.

Свойства класса TCanvas:

Canvas: TCanvas – определяет область рисования;

Brush: TBrush – кисть для закраски замкнутых фигур;


Font: TFont – шрифт для отображения текста на канве;

Pen: TPen – карандаш (перо) для рисования;

PenPos: TPoint – текущее положение невидимого курсора на канве;

Замечание: тип TPoint определяется следующим образом:

Type TPoint = record

x: longint;

y: longint;

end;

Pixels[x,y:integer]:TColor – задает цвета пикселов канвы, X, Y – координаты пиксела. Свойства Pixels удобно использовать для построения графиков при помощи точек выбранного цвета.

Основные методы класса TCanvas

  1. Procedure MoveTo (x,y: integer); - перемещает перо без рисования линии в точку с координатами (x,y).

  2. Procedure LineTo (x,y: integer); - рисует линию от текущей точки до точки с координатами (x,y).

Пример: Нарисуем диагональную линию синего цвета на форме из левого верхнего угла формы до правого нижнего угла.

with canvas do begin

pen.color:=clblue;

MoveTo(0,0);

LineTo(ClientWidth, ClientHeight);P rocedure Rectange (x1, x2, y1, y2: integer);

End;

  1. Procedure Rectangle (x1, x2, y1, y2: integer); - рисует прямоугольник: x1, y1 – координаты верхнего левого угла, x2, y2 – координаты правого нижнего угла.

Пример: Нарисуем закрашенный в желтый цвет квадрат со стороной 6 пикселов в середине формы.

varXc, Yc: integer; //координаты центра клиентской области формы

begin

Xc:=ClientWidth div 2;

Yc:=ClientHeight div 2;

Canvas.Brush.Color:=clYellow;

CAnvas.Rectangle(Xc-30,Yc-30,Xc+30,Yc+30);

End;

  1. Procedure Ellipse (x1, x2, y1, y2: integer); - рисует эллипс, вписанный в прямоугольник с указанными координатами.

Пример: Нарисуем эллипс, вписанный в компонент PaintBox.

PaintBox1.Canvas.Pen.Width:=4; // ширина линии – 4 пиксела

PaintBox1.Canvas.Ellipse(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

  1. Procedure Polygon (Points: array of TPoint); - рисует замкнутый многоугольник, заданный массивом координат.

Замечание: существует стандратная фукнкция Point, которая позволяет указанные координаты X, Y преобразовать в тип TPoint˗> FunctionPoint (x,y:integer): Point;

Пример: Нарисуем закрашенный ромб, соединяющий середины сторон формы.

varXc, Yc: integer; //координаты центра клиентской области формы

begin

Xc:=ClientWidth div 2;

Yc:=ClientHeight div 2;

Canvas.Brush.Color:=RGB(255,140,70);

CAnvas.Polygon([Point(Xc,0),Point(ClientWidth,Yc),Point(Xc,ClientHeight),Point(0,Yc)]);