- •Лабораторная работа №2. Работа в delphi
- •Задание 2.1 Рисование мышью.
- •Задание 2.2 Будем изменять толщину и цвет рисуемых мышкой линий
- •Разместите их так как показано на рисунке 4.
- •Задание 2.3 Научимся работать с контекстным меню MainMenu в котором определим вкладки для очистки формы и закрытия приложения.
- •Задание 3.1 Иногда в Windows–приложениях присутствует что-то наподобие стандартного текстового блокнота (NotePad). Компонент Memo как раз во многом подобен такому блокноту.
Задание 2.2 Будем изменять толщину и цвет рисуемых мышкой линий
Здесь же сбросьте на форму кнопку Button1 и следующие компоненты:
|
Компонент |
Свойство |
Значение свойства |
|
Label1 |
Caption |
Цвет |
|
Label2 |
Caption |
Толщина |
|
Edit1 |
Text |
100000 |
|
Edit1 |
Text |
10 |
Разместите их так как показано на рисунке 4.

После щелчка на кнопке цвет и толщина рисуемых линий должны измениться. Также ради интереса выведем текст “УРА” в область с координатами (0,0).
Для этого в обработчике щелчка на кнопке напишите:
Canvas.Pen.Color:=StrToInt(Edit1.Text); //Устанавливаем цвет
Canvas.Pen.Width:=StrToInt(Edit2.Text);//Устанавливаем толщину
Canvas.Font.Size:=18;//Устанавливаем размер шрифта для текста
Canvas.TextOut(0,0,'УРА');//Выводим на форму текст

Задание 2.3 Научимся работать с контекстным меню MainMenu в котором определим вкладки для очистки формы и закрытия приложения.
Добавьте на форму контекстное меню MainMenu1 (палитра Standard), щелкните по ней двойным щелчком

Затем в свойстве Caption выделенной вкладки напишите “File”, а также добавьте ещё вкладки “Очистить” и “Выход” как показано на рисунке

Щелкните двойным щелчком по вкладке “Очистить” и войдите в обработчик щелчка на вкладке – procedure TForm1.N1Click(Sender: TObject).
Здесь надпись “Очистить” это значения свойству Caption объекта с именем N1 который принадлежит объекту MainMenu1, именно в его обработчик мы и зашли.
В этом обработчике напишите следующее:
Canvas.Brush:=Form1.Brush;
{Устанавливаем значение свойства Brush объекта Canvas в значение свойства Brush объекта формы.}
Canvas.FillRect(Form1.ClientRect);
{Методом FillRect объекта Canvas закрашиваем форму её же цветом}
Аналогично щелкните двойным щелчком по вкладке “Выход” и напишите в обработчике:
Close; // завершить программу
Запустите программу. Программа должна работать правильно. Вернитесь в режим программирования.
Задание 3.1 Иногда в Windows–приложениях присутствует что-то наподобие стандартного текстового блокнота (NotePad). Компонент Memo как раз во многом подобен такому блокноту.
У компонента Memo как и у NotePad есть методы записи и загрузки текстовых файлов. Так как компонент Memo работает только с текстовым форматом, то при выводе в него значений их требуется предварительно перевести в текстовый формат операторами FloatToStr или IntToStr.
Создайте новый проект.
Переместите Memo1 на форму. Слегка его растяните и сбросьте кнопку Button1 на форму (рис. 8).

Рис. 8 Демонстрация работы компонента Memo1
С помощью Object Inspector зайдите в свойство Lines компонента Memo1. Для этого щелкните по трем точкам, что справа от надписи Lines (рис.9),

Рис. 9 Свойство Lines компонента Memo1 в Object Inspector
Перед вами откроется окно ввода строк String List Editor(рис. 10). Каждая строка компонента Memo1 является строкой класса TStrings. Вы можете спокойно вводить сюда текст, но в данном задании этого делать не требуется, поэтому просто очистите строки компонента, стерев строку с надписью Memo1.

Рис. 10 Окно ввода строк String List компонента Memo1
Задание 3.2 Выведем 2 текстовых строки в компонент Memo1 при щелчке на Button1.
Зайдите в обработчик щелчка кнопки Button1. Напишите там:
memo1.Lines.Add('Студент');
memo1.Lines.Add('Информатика');
Здесь метод Add() свойства Lines объекта Memo1 добавляет еще одну строку в Memo1, в скобках метода Add() должен быть либо текст между апострофами ‘Студент’, либо переменная строкового типа.
Запустите программу. Убедитесь в правильности ее работы. Вернитесь в режим программирования.
Задание 3.3 Требуется вывести в Memo1 строку «1 2 3 4 5»
Добавьте еще кнопку Button2 на форму. Её обработчик должен быть следующим:
var i:integer; s:string;
begin
s:=’’; //устанавливаем строку пустой
{формируем строку накапливая в ней цифры и пробелы между ними}
for i:=1 to 5 do s:=s+’ ‘+IntToStr(i);
Memo1.Lines.Add(s); // выводим строку в Memo1
end;
Запустите программу. Убедитесь в правильности ее работы. Вернитесь в режим программирования.
Задание 3.4 Требуется вывести в Memo1 матрицу 3x4 заполненную случайными числами в диапазоне от нуля до 100.
Для этого в этом же проекте переместите еще одну кнопку Button3 на форму.
Полный код обработчика щелчка на ней должен быть следующий:
procedure TForm1.Button3Click(Sender: Tobject);
var
I, j:word;//Определяем переменные целого типа индексирующие строку и столбец
massiv:array[1..3,1..4] of word; {Определяем двумерный массив(матрицу) целых чисел }
s:string; //Определяем строку для заполнения её цифрами и последующего вывода
begin
Memo1.Clear;//Очищаем Memo1
randomize;// Инициализируем генератор случайных чисел
for i:=1 to 3 do //Делаем двойной цикл чтобы заполнить массив massiv[I,j]
for j:=1 to 4 do
massiv[I,j]:=random(101);// случайными числами от 0 до 100 функцией random
for i:=1 to 3 do begin // Цикл по строкам с индексом i
s:=''; // очищаем переменную s содержащую строку
for j:=1 to 4 do // Цикл по столбцам с индексом j
s:=s+’ ‘+IntToStr(massiv[I,j]);//Формируем строку s из столбцов j
Memo1.Lines.Add(s);//Выводим строку в Memo1
end;
end;

Рис. 11 Матрица 3x4 заполненная случайными числами в Memo1
Запустите программу. Убедитесь в правильности ее работы. Вернитесь в режим программирования.
автор и разработчик лабораторных
работ по Delphi
доцент кафедры Информационных технологий и систем
кандидат физ.-мат. наук
Санников Е.В.
