Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОА Delphi формата А4.doc
Скачиваний:
7
Добавлен:
29.08.2019
Размер:
1.58 Mб
Скачать

If ssLeft in Shift then begin

with PaintBox1.Canvas do

begin

FloodFill(X, Y, pen.Color,fsBorder);

end; end; end;

Примечание: Для выбора в меню команд изменения цвета границы и цвета заливки свяжите с соответствующими событиями нажатия соответствующих кнопок.

В пункт меню Параметры добавить команду Шрифт. Для выбора шрифта требуется добавить на форму компонент FontDialog1.

Для ввода текста в область компонента GroupBox2 добавьте два компонента класса TLabel, Edit1. Измените свойства добавленных компонентов:

  • свойство Caption компонента Label1 на Ввод текста;

  • свойство Text компонента Edit1 на пустое значение;

  • для события нажатия правой кнопки мыши в области объекта PaintBox1 написать программу:

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin if ssRight in Shift then begin

PaintBox1.Canvas.Brush.Style:=bsClear;

TextX := X; TextY := Y;

PaintBox1.Canvas.TextOut(X, Y, '*');

Edit2.SetFocus; Edit2.SelectAll; end; end;

  • Для события ввода текста написать программу:

procedure TForm1.Edit2Change(Sender: TObject);

begin

with PaintBox1.Canvas do begin

TextOut(TextX, TextY, Edit2.Text)

end; end;

ВОПРОСЫ:

  1. Процедуры для рисования простейших геометрических фигур: прямоугольника, эллипса, линии.

  2. Процедура заливки замкнутой области.

  1. И зучение графических возможностей Delphi при решении математических задач.

Цель: Научиться программировать приложения для решения математических задач

Задание: Создать проект вычисления площади и периметра трапеции. Построить чертеж трапеции по заданным длинам сторон.

Метод решения:

  • Формулы для расчета высоты трапеции:

  • Y=(C2-D2-(b-a)2)/(2*(a-b)), h= SQRT(d2-y2)

ВОПРОСЫ:

  1. Использование математических формул при решении задачи

  2. Как добавить меню для написанного приложения.

  1. Работа со списками классов tListBox и tComboBox.

ЗАДАЧА1. Поместить на форму компонент TabbedNotebook1. Организовать работу следующим образом: при активизации формы появляются две закладки: СТУДЕНТЫ АСУ2-1 и СТУДЕНТЫ АСУ2-2.

Для решения задачи необходимо:

-поместить компонент TabbedNotebook1 со страницы Win3.1;

-выбрать в окне ИНСПЕКТОРА ОБЪЕКТА свойство Align и установить его равным alClient;

-выбрать в окне ИНСПЕКТОРА ОБЪЕКТА свойство Pages;

-в появившемся диалоговом окне выбрать кнопку Edit…;

-в поле Page name написать название первой страницы – СТУДЕНТЫ АСУ2-1;

-выбрать кнопку Close;

-выбрать кнопку Add…;

-в поле Page name написать название первой страницы – СТУДЕНТЫ АСУ2-2;

-поместить на первую страницу СТУДЕНТЫ АСУ2-1 кнопку Button1:

для этого необходимо: -щелкнуть правой кнопкой мыши по слову СТУДЕНТЫ АСУ2-1; -в появившемся меню выбрать команду Next Page;

ЗАДАЧА2. Поместить на форму следующие компоненты: ListBox1, ComboBox1. Организовать работу следующими образом: при активизации формы происходит заполнение списка ListBox1 и раскрывающего списка ComboBox1 некоторыми значениями.

Для решения задачи необходимо:

-поместить на форму компоненты ListBox1, ComboBox1;

-указать в свойстве text компонента ComboBox1 слово first line;

-выбрать в окне ИНСПЕКТОРА ОБЪЕКТА закладку Events;

-написать программу, согласно которой будет происходить заполнение списков:

для этого необходимо: -выполнить двойной щелчок по событию onActivate;

-в появившейся конструкции написать программу:

procedure TForm1.FormActivate(Sender: TObject);

begin

listbox1.Items.Add('первая строка');

listbox1.Items.Add('вторая строка');

listbox1.Items.Add('третья строка');

listbox1.Items.Add('четвертая строка');

listbox1.Items.Add('пятая строка');

listbox1.Items.Add('шестая строка');

listbox1.Items.Add('седьмая строка');

combobox1.Items.Add('second line');

combobox1.Items.Add('third line');

combobox1.Items.Add('fourth line');

combobox1.Items.Add('fifth line');

combobox1.Items.Add('sixth line');

combobox1.Items.Add('seventh line'); end;

ЗАДАЧА3. Поместить на форму следующие компоненты: ListBox1, Button1, Button2, Edit1. Организовать работу следующим образом: при активизации формы происходит заполнение списка значениями. При выборе кнопки Button1 происходит переход к первой записи, а при выборе кнопки Button2 – к следующей записи.

Для решения задачи необходимо:

-поместить компоненты на форму;

-написать программу, отвечающую за заполнение списка:

по событию onActivate формы:

procedure TForm1.FormActivate(Sender: TObject);

begin

listbox1.Items.Add('первая строка');

listbox1.Items.Add('вторая строка');

listbox1.Items.Add('третья строка');

listbox1.Items.Add('четвертая строка');

listbox1.Items.Add('пятая строка'); end;

-написать программу, отвечающую за переход к первой записи и отображения индекса записи в поле Edit1:

по событию onClick кнопки Button1:

procedure TForm1.Button1Click(Sender: TObject);

begin

listbox1.ItemIndex:=0;

edit1.Text:=inttostr(listbox1.itemindex+1); end;

-написать программу, отвечающую за переход к следующей записи в списке ListBox1:

по событию onClick кнопки Button2:

procedure TForm1.Button2Click(Sender: TObject);

begin

listbox1.ItemIndex:=listbox1.ItemIndex+1;

edit1.Text:=inttostr(listbox1.itemindex+1); end;

ЗАДАЧА4. Поместить на форму следующие компоненты: ComboBox1, Edit1. Организовать работу следующим образом: при активизации формы происходит заполнение раскрывающегося списка ComboBox1 некоторыми значениями. При выборе в списке определенной записи оно отображается в поле вода Edit1.

Для решения задачи необходимо: поместить компоненты на форму;

-указать в свойстве text компонента ComboBox1 слово first line;

-написать программу, отвечающую за заполнение списка ComboBox1 определенными значениями: по событию onActivate формы:

procedure TForm1.FormActivate(Sender: TObject);

begin

combobox1.Items.Add('second line');

combobox1.Items.Add('third line');

combobox1.Items.Add('fourth line');

combobox1.Items.Add('fifth line');

combobox1.Items.Add('sixth line');

combobox1.Items.Add('seventh line'); end;

-написать программу, отвечающую за отображение в поле Edit1 определенной записи списка ComboBox1:

по событию onClick компонента ComboBox1:

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

edit1.Text:=combobox1.Text;

end;

ЗАДАЧА5. Поместить на форму следующие компоненты: ListBox1, Button1, Edit1. Организовать работу следующим образом: при выборе кнопки Button1 происходит добавление данных в список ListBox1, записанных в поле ввода Edit1.

Для решения задачи необходимо:

-поместить компоненты на форму;

-написать программу, отвечающую за добавление новой записи в список:

по событию onСlick кнопки button1:

procedure TForm1.Button1Click(Sender: TObject);

begin

listbox1.Items.Insert(listbox1.itemindex+1,edit1.text);

end;

ЗАДАЧА6. Поместить на форму следующие компоненты: ListBox1, Button1,. Организовать работу следующим образом: при выборе кнопки Button1 происходит удаление записи из списка с индексом, указанным в поле SpinEdit1.

Для решения задачи необходимо:

-поместить компоненты ListBox1, Button1 со страницы Standart и компонент SpinEdit1 со страницы Samples;

-установить свойство MaxValue компонента SpinEdit1 равным 100;

-написать программу, отвечающую за удаление записи в списке:

по событию onClick кнопки Button1:

procedure TForm1.Button1Click(Sender: TObject);

begin

listbox1.Items.Delete(spinedit1.value-1);

end;

ЗАДАЧА7. Поместить на форму следующие компоненты: ListBox1, Image1. Организовать работу следующим образом: при активизации формы список ListBox заполняется некоторыми значениями. При выборе в списке определенной записи на форме отображается её графическое изображение.

Для решения задачи необходимо:

-создать в Paint три рисунка:

квадрат, сохранив его под именем 1.bmp на диске с:\,

круг, сохранив его под именем 2.bmp на диске с:\,

треугольник, сохранив его под именем 3.bmp на диске с:\.

-поместить на форму компонент ListBox1 со страницы Standart и компонент Image со страницы Additional;

-написать программу, отвевающую за заполнение списка:

по событию onActivate формы:

procedure TForm1.FormActivate(Sender: TObject);

begin

listbox1.Items.Add('квадрат');

listbox1.Items.Add('круг');

listbox1.Items.Add('треугольник');

end;

-написать программу, отвечающую за отображение графического изображения на форме:

по событию onClick компонента ListBox1:

procedure TForm1.ListBox1Click(Sender: TObject);

var

m: array[1..3] of string;

begin

m[1]:='c:\1.bmp';

m[2]:='c:\2.bmp';

m[3]:='c:\3.bmp';

i:=listbox1.itemindex;

image1.Picture.LoadfromFile(m[i+1]);

end;

ВОПРОСЫ:

  1. Изучение свойств и методов компонентов классов TListBox и TComboBox

  2. Использование массивов при написании программ.