Файл: Лабораторная работа 1 Часть i 13 лабораторная работа n 1 Часть ii 16 лабораторная работа n 1 Часть iii 1.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 329
Скачиваний: 2
СОДЕРЖАНИЕ
ЛАБОРАТОРНАЯ РАБОТА № 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.
Тема 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
Shift: TShiftState; X, Y: Integer);
var
rec:Trect;
nc,nr:integer;
begin
With DrawGrid1 do
begin
MouseToCell(x,y,nc,nr); //координатымышипреобразуютсявномерстрокииколонки
rec:=CellRect(nc,nr); //определяется прямоугольник, который занимает указанная строка
canvas.Brush.color:=clgreen; //определяется цвет закраски - белый
canvas.FillRect(Rec); //закрашивается указанный прямоугольник
canvas.Pen.color:=clwhite; //определяется цвет пера - белый
canvas.Ellipse(rec.Left,rec.Top,rec.Right,rec.Bottom); //рисуем эллипс, вписанный в ячейку
end;end;
Замечание: для того, чтобы указанные ячейки оставались закрашенными при активизации другой ячейки, необходимо установить свойство таблицы DafaultDrawing = true.
Таблица StringGrid
Таблица StringGrid предназначена для хранения и отображения текстовой информации и графических объектов. Принадлежит классу TStringGrid, является потомком класса TDrawGrid и TCustomGrid.
Свойства класса TStringGrid:
-
Property Cells [ACol,ARow:integer] : string ; - массив, каждый элемент которого определяет текстовую информацию, находящуюся в ячейке с номером ACol и номером строки ARow. -
Property Objects [ACol,ARow:integer] : TObject ; - массив, каждый элемент которого является указателем на объект, связанный с ячейкой, находящейся в ячейке с номером столбца ACol и номером строки ARow. Используется для отображения графических изображений. -
Property Cols [I:integer]: TStrings; - определяет колонку с номером I; -
Property Rows [I:integer]: TStrings; - определяет строку с номером I.
Пример 1: демонстрация свойств Cols таблицы StringGrid. Загрузим в первую колонку таблицы StringGrid строки из файла «Config.sys», а во вторую колонку – строки файла «Autoexec.bat».
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
StringGrid1.ColCount:=3; StringGrid1.RowCount:=15; //размертаблицы
StringGrid1.ColWidths[1]:=180; // устанавливаем ширину первой колонки
StringGrid1.ColWidths[2]:=180; // устанавливаем ширину второй колонки
StringGrid1.Cols[1].LoadFromFile('c:\config.sys');
StringGrid1.Cols[2].LoadFromFile('c:\autoexec.bat');
end;
Пример 2: демонстрация свойств Cells таблицы StringGrid. Вычислим значения функции Z=Y2-X2 на интервале 1<X≤4, 1<Y≤3 и отобразим их в ячейках таблицы StringGrid.
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j:integer;
begin
with StringGrid1 do begin
colcount:=5; rowcount:=4; //размеры таблицы
cells[0,0]:='Y| x->'; //определяем значение верхней левой ячейки
for i:=0 to colcount-1 do
begin
cells[i,0]:=inttostr(i); //вывод значений X в фиксированные ячейки
for j:=1 to rowcount-1 do
begin
cells[0,j]:=inttostr(j); //вывод значений Y в фиксированные ячейки
cells[i,j]:=inttostr(j*j-i*i); //отображение вычисленных значений функции Z
end;
end;
end;
end;
Пример 3 – демонстрация свойства Objects таблицы StringGrid. Будем выбирать файл с расширением *.ico (при помощи диаголовой панели OpenPictureDialog) и размещать картинку из выбранного файла в активную ячейку таблицы StringGrid1, в эту же ячейку будем записывать имя файла – программируем щелчок на кнопке Load (загрузить).
procedure TForm1.BitBtn1Click(Sender: TObject);
var
nc,nr:integer;//номер колонки и строки
Fname, Ext:string;//полное имя файла и его расширения
begin
if OpenPictureDialog1.Execute then Fname:= OpenPictureDialog1.FileName else Exit;
Ext:=ExtractFileExt(Fname); //выделяемрасширениеименифайла
ifExt <> '.ico' thenExit //загружаем только пиктограммы
elsebegin
Nc:=stringgrid1.Col; // определяем номер столбца активной ячейки
Nr:=stringgrid1.row; // определяем номер строки активной ячейки
stringgrid1.Objects[nc,nr]:=Ticon.Create;
with stringgrid1.objects[nc,nr] as Ticon do loadfromfile(Fname);
stringgrid1.cells[nc,nr]:=Fname; //записываемвячейкуимяфайла
end;
end;
Необходимо дополнительно написать код для события OnDrawCell таблицы:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
{дополнительнаяпроцедура – метод Draw копируетизображение Graphic на
поверхностьэкрана, верхнийлевыйуголкоторыйзаданкоординатами X,Y}
procedure Draw(X,Y: integer; Graphic:TGraphic);
begin
end;
begin
StringGrid1.Canvas.Draw (Rect.Left,Rect.Top+20,Ticon(StringGrid1.Objects[Acol,Arow]));end;
Таблица ColorGrid – таблица цветов
(компонент размещен на странице Simples палитры компонентов)
Таблица ColorGrid содержит 16 ячеек с разными цветами и использует левые и правые щечки мыши для выбора двух цветов цвета символа и цвета фона.
Свойства таблицы ColorGrid:
-
ForegrountColor: TColor – указывает цвет, выбранный нажатием левой кнопки мыши. -
BackGroundColor: TColor – указывает цвет, выбранный нажатием правой кнопки мыши. -
GridOrdering = (например: 4*4, 16*1,1*16) – указывает структуру таблицы, то есть число столбцов и строк. -
Номер цветов хранится в свойствах ForegroundIndex и BackGroundIndex – можно установить на этапе проектирования.
Пример: Будем изменять цвет фона и цвет символов таблицы StringGrid1 и компонента Label1 в зависимости от щелчка на компонент ColoGrid: при щелчке правой кнопки мыши пусть изменяется фоновый цвет таблицы StringGrid, а при щелчке левой кнопки изменяется цвет символов в компонентах StringGrid и Label.
procedure TForm1.ColorGrid1Change(Sender: TObject);
begin
StringGrid1.Color:=ColorGrid1.BackgroundColor; //цветфона
StringGrid1.Color:=ColorGrid1.ForegroundColor; //цветсимволов
Label1.Font.Color:=ColorGrid1.ForegroundColor; //цветсимволов Label
end;
ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть I /
ТЕМА: «Работа с таблицами STRINGGRID и COLORGRID»
Задание №1
-
Разместите на форме1 компонент Stringgrid1.
Установите в Инспекторе объектов для таблицы Stringgrid1 следующие значения свойств:
-
количество столбцов (Colcount) → 6; -
количество строк (Rowcount) → 4; -
число фиксированных столбцов (FixedCols) → 1; -
число фиксированных строк (FixedRows) → 2; -
Options/goEditing → true // возможность редактирования ячеек таблиц
-
Напишите программный код для события OnCreate формы Form l, который будет заполнять ячейки таблицы Stringgrid1 в момент запуска программы по шаблону, приведенному ниже.
Например, чтобы заполнить фиксированную строку, следует написать следующие строки:
-
StringGrid1.Cells [0,1] := ' прямоугольник ' ; -
StringGridl.Cells [0,2] := ' эллипс ' ;
ШАБЛОН ТАБЛИЦЫ StringGrid l
| Размер по Х | Размер по У | Красный | Зеленый | Синий |
Прямоугольник | 40 | 40 | 40 | 40 | 40 |
Эллипс | 40 | 40 | 40 | 40 | 40 |
-
Установите на форму 1 таблицу цветов ColorGrid1 и напишите программный код для события OnChange компонента ColorGrid1 таким образом, чтобы цвет символов и фона таблицы StringGrid1 устанавливался равным цветам ForegroundColor и BackGroundColor, выбираемым в таблице ColorGrid1. -
Добавьте на форму 1 три графические кнопки BitBtn, назовите их соответственно «Прямоугольник», «Эллипс», «Выход». Загрузите на кнопки «картинки», подходящие по смыслу (через свойство Glyph). Напишите обработчики события OnClick для этих кнопок таким образом, чтобы:-
при нажатии на кнопку «Прямоугольник» открывалась форма 2 и на ней рисовался прямоугольник в центре формы 2 с параметрами, указанными в таблице StringGrid1. -
при нажатии на кнопку «Эллипс» открывалась форма 3 и на ней рисовался эллипс в центре формы 3 с параметрами, указанными в таблице StringGrid1 в строке для эллипса. -
при нажатии на кнопку «Выход» работа программы должна быть завершена (после разрешения пользователя).
-
Рекомендации:
-
формы 2 и 3 лучше создать без заголовка и рамки (установить свойство BorderStyle → bsNone). -
закрытие форм 2 и 3 должно производиться двойным щелчком мыши по форме. -
программный код для рисования геометрических фигур включить в событие OnPaint форм, в этом случае рисунок будет нарисован сразу при показе формы.
-
Выполните отладку программы, обеспечьте проверку корректности ввода данных в ячейки таблицыи продемонстрируйте ее преподавателю: при изменении пользователем чисел в таблице StringGrid1 должны изменяться размеры и цвет геометрических фигур.
ЛАБОРАТОРНАЯ РАБОТА № 3 / Часть II / 1 вариант
Задание №1
Создайте приложение, позволяющее:
-
устанавливать количество столбцов и строк таблицы StringGrid равными числам, вводимым пользователем; -
закрасить ячейки таблицы StringGrid таким образом, чтобы таблица выглядела как флаг России.
Задание №2
Создайте приложение, позволяющее: - устанавливать количество столбцов и строк таблицы StringGrid равными числам, вводимым пользователем;
-
переписать содержимое каждой ячейки указанной пользователем строки таблицы StringGrid в обратную сторону; -
изменять цвет символов в таблице на выбранный пользователем.
Задание №3
Разработать приложение, позволяющее:
-
задавать фактическую размерность одномерного массива А целых чисел в компоненте SpinEdit1 и проверять корректность ввода; -
отображать на экране компонент StringGrid1 (количество строк – одна, количество столбцов соответствует фактической размерности массива); -
вводить элементы массива А в ячейки таблицы StringGrid1 (обеспечив ввод в ячейку таблицы только допустимые символы, т.е. цифры и знак минус первым символом); -
находить и визуализировать на форме:
а) количество чётных элементов массива;
б) среднее арифметическое значение отрицательных элементов массива;
в) максимальный элемент массива.
Рекомендация: Обработку корректности ввода элементов массива в ячейки таблицы StringGrid1, можно реализовать в процедуре обработки события OnKeyPress:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'. .'9', #8 : ; // цифрыи