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

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

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

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

Добавлен: 10.11.2023

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

Скачиваний: 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



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:

  1. Property Cells [ACol,ARow:integer] : string ; - массив, каждый элемент которого определяет текстовую информацию, находящуюся в ячейке с номером ACol и номером строки ARow.

  2. Property Objects [ACol,ARow:integer] : TObject ; - массив, каждый элемент которого является указателем на объект, связанный с ячейкой, находящейся в ячейке с номером столбца ACol и номером строки ARow. Используется для отображения графических изображений.

  3. Property Cols [I:integer]: TStrings; - определяет колонку с номером I;

  4. 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<X4, 1<Y3 и отобразим их в ячейках таблицы 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:

  1. ForegrountColor: TColor – указывает цвет, выбранный нажатием левой кнопки мыши.

  2. BackGroundColor: TColor – указывает цвет, выбранный нажатием правой кнопки мыши.

  3. GridOrdering = (например: 4*4, 16*1,1*16) – указывает структуру таблицы, то есть число столбцов и строк.

  4. Номер цветов хранится в свойствах 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. Разместите на форме1 компонент Stringgrid1.

Установите в Инспекторе объектов для таблицы Stringgrid1 следующие значения свойств:

  • количество столбцов (Colcount) → 6;

  • количество строк (Rowcount) → 4;

  • число фиксированных столбцов (FixedCols) → 1;

  • число фиксированных строк (FixedRows) → 2;

  • Options/goEditing → true // возможность редактирования ячеек таблиц

  1. Напишите программный код для события 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. Установите на форму 1 таблицу цветов ColorGrid1 и напишите программный код для события OnChange компонента ColorGrid1 таким образом, чтобы цвет символов и фона таблицы StringGrid1 устанавливался равным цветам ForegroundColor и BackGroundColor, выбираемым в таблице ColorGrid1.

  2. Добавьте на форму 1 три графические кнопки BitBtn, назовите их соответственно «Прямоугольник», «Эллипс», «Выход». Загрузите на кнопки «картинки», подходящие по смыслу (через свойство Glyph). Напишите обработчики события OnClick для этих кнопок таким образом, чтобы:

    1. при нажатии на кнопку «Прямоугольник» открывалась форма 2 и на ней рисовался прямоугольник в центре формы 2 с параметрами, указанными в таблице StringGrid1.

    2. при нажатии на кнопку «Эллипс» открывалась форма 3 и на ней рисовался эллипс в центре формы 3 с параметрами, указанными в таблице StringGrid1 в строке для эллипса.

    3. при нажатии на кнопку «Выход» работа программы должна быть завершена (после разрешения пользователя).


Рекомендации:

  • формы 2 и 3 лучше создать без заголовка и рамки (установить свойство BorderStylebsNone).

  • закрытие форм 2 и 3 должно производиться двойным щелчком мыши по форме.

  • программный код для рисования геометрических фигур включить в событие OnPaint форм, в этом случае рисунок будет нарисован сразу при показе формы.

  1. Выполните отладку программы, обеспечьте проверку корректности ввода данных в ячейки таблицыи продемонстрируйте ее преподавателю: при изменении пользователем чисел в таблице 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 : ; // цифрыи