Нанесение текста на поверхности формы
Содержание
Задание
. Исходные тексты программы
1.1 Unit Camera_unit
.2 unit Spravka_Unit
1.3. Главная
программа
2. Скриншоты программы
Заключение
Список литературы
Задание
Вариант контрольной работы выбирается по таблице
в зависимости от двух последних цифр номера зачетной книжки.
Номер варианта
|
Задание 1
|
Задание 2
|
53
|
14
|
5, 8
|
Задание 1. Нарисовать на форме предложенное
изображение, используя различные стили и цвета для кисти и пера. Для рисования
использовать свойства и методы Canvas
формы.
Задание 2. Добавить на форму визуальные
компоненты и запрограммировать их поведение. Для опций меню обязательно
установить быстрые клавиши и иконки. Примеры использования компонентов
приведены в лекциях.
Пункт
меню
|
Действие
|
Действия/
Нарисовать
|
При
выборе этой опции меню на форме появляется рисунок.
|
Действия/ Очистить
|
При
выборе этой опции меню нарисованный рисунок исчезает.
|
Действия/ Выход
|
Приложение завершает свою работу
|
Информация/Показать
|
При
выборе этой опции заполняется таблица (компонент TStringGrid)
информацией о ширине, высоте и положении формы
|
Информация / Скрыть
|
При
выборе этого пункта таблица очищается.
|
1. Создать контекстное меню
следующего вида
Пункт меню
|
Действие
|
Выход
|
Приложение завершает свою работу
|
Надпись
|
При
выборе этой опции около рисунка появляется надпись. (Использовать
методы Canvas)
|
При
выборе этого пункта появляется информационное окно с информацией об авторе и
приложении.
|
.
Исходные тексты программы
1.1Unit
Camera_unit
Camera_Unit;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Menus, Grids, ExtCtrls;_form =
class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TStringGrid;: TMenuItem;N2Click(Sender: TObject);N4Click(Sender:
TObject);N3Click(Sender: TObject);N6Click(Sender: TObject);N7Click(Sender:
TObject);FormCreate(Sender: TObject);N9Click(Sender: TObject);N10Click(Sender:
TObject);N11Click(Sender: TObject);
{ Private declarations }
{ Public declarations };_form:
TCamera_form;:integer;//коэффициэт
масштаба,x1,xc,y,y1,yc:integer;//координаты
объета,r2:integer;//радиусы
объекта:integer;
//приращение_figura,flag_inform,flag_help:boolean;Spravka_Unit;
{$R *.dfm}Clearing; //стереть
объект_form.Canvas.Brush.Color:=
Camera_form.Color;_form.Canvas.FillRect(rect(x-1,y-2*a-1,x+10*a,y+9*a));;Foto(x,y,a:
integer); //рисуем методами
ellipse, Poilgon, Rectangle
var,bc:Tcolor;//текущие цвета карандаша и кисти
//вычисляем значения
координат:=x+8*a;:=y+5*a;:=round((x1+x)/2);//координата Х центра
объектива:=round((y1+y)/2);//координата У центра объектива:=2*a;//радиус
внешнего круга:=round(0.75*r1);//радиус внутреннего круга
//рисуем
фотоаппаратCamera_form.Canvas
do
begin
//сохраним текущий цвет карандаша и кисти
pc:=Pen.Color;:=Brush.Color;
//установим нужный цвет карандаша и кисти
Pen.Color:= clBlack;.Color:= clGray;
//рисуем(x,y,
x1,y1);((xc-r1),(yc-r1),(xc+r1),(yc+r1));((xc-r2),(yc-r2),(xc+r2),(yc+r2));([Point((xc-r1),y),Point((xc-r2),round(y-0.75*a)),((xc+r2),round(y-0.75*a)),Point((xc+r1),y)]);([Point(round(x+0.5*a),y),Point(round(x+0.5*a),round(y-0.5*a)),(round(x+1.5*a),round(y-0.5*a)),Point(round(x+1.5*a),y)]);
//восстановим нужный цвет карандаша и кисти
Pen.Color:= pc;.Color:=
bc;;;TCamera_form.N2Click(Sender:
TObject);;:=50;:=100;:=100;(x,y,a);_figura:=true;;TCamera_form.N4Click(Sender:
TObject);;;TCamera_form.N3Click(Sender:
TObject);;_figura:=false;.Visible:=false;;TCamera_form.N6Click(Sender:
TObject);,vysota,center,x0y0:string;flag_figura
then.Visible:=true;.Cells[0,0]:='Информация';.Cells[1,0]:='Пиксели';.Cells[0,1]:='Ширина
Фигуры';.Cells[0,2]:='Высота
Фигуры';.Cells[0,3]:='Центр
фигуры';.Cells[0,4]:='Точка
отсчета';:=IntToStr(8*a);.Cells[1,1]:=
shirina;:=IntToStr(round(5.75*a));.Cells[1,2]:= vysota;:='X=';:=
center+IntToStr(round(xc));:= center+'; Y=';:=
center+IntToStr(round(yc));.Cells[1,3]:= center;y0:='x0=';y0:=
x0y0+IntToStr(round(x));y0:= x0y0+'; y0=';y0:=
x0y0+IntToStr(round(y));.Cells[1,4]:=
x0y0;.Visible:=false;;TCamera_form.N7Click(Sender:
TObject);.Visible:=false;;TCamera_form.FormCreate(Sender: TObject);
//Camera_form.Color:=ClOlive;;TCamera_form.N9Click(Sender:
TObject);_form.Panel_autor.Visible:=false;_form.Panel_program.Visible:=true;_form.Show;;TCamera_form.N10Click(Sender:
TObject);_form.Panel_autor.Visible:=true;_form.Panel_program.Visible:=false;_form.Show;;TCamera_form.N11Click(Sender:
TObject);
// Установить свойства шрифта для текста,
который будет нарисован на
// поверхности
формы.flag_figura
then_form.Canvas.Font.Name := 'Times New Roman';_form.Canvas.Font.Size :=
24;_form.Canvas.Font.Style := [fsBold] + [fsItalic];_form.Canvas.Font.Color :=
clRed;_form.Canvas.TextOut(195,16,'Фотоаппарат');;;.
.2 unit Spravka_Unit
Spravka_Unit;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls;_form =
class(TForm)_Button: TButton;_program: TPanel;_p1: TLabel;_p2: TLabel;_p3:
TLabel;_p4: TLabel;_p5: TLabel;_autor: TPanel;_a1: TLabel;_a2: TLabel;_a3:
TLabel;Close_ButtonClick(Sender: TObject);
{ Private declarations }
{ Public declarations };_form:
TSpravka_form;
{$R *.dfm}TSpravka_form.Close_ButtonClick(Sender:
TObject);
begin;;.
программный графический форма текст
1.3 Главная
программа
Camera_Project;,_Unit in
'Camera_Unit.pas' {Camera_form},_Unit in 'Spravka_Unit.pas' {Spravka_form};
{$R
*.res}.Initialize;.CreateForm(TCamera_form,
Camera_form);.CreateForm(TSpravka_form, Spravka_form);
Application.Run;.
2.
Скриншоты программы
рис.1 Старт программы
рис.2 Прорисовка фотоаппарата
рис. 3 Отображение информации о фигуре
рис. 4 отображение информации о программе
рис. 5 отображение информации об авторе
рис. 6 отображение надписи
рис. 7 программа
Заключение
В процессе выполнения контрольной работы были
освоены начальные навыки работы в программной среде Delphi
и выполнена программа, создающая графический объект, имеет меню и справку.
Литература
1. Ситняковская
Е.И. “ Программирование на языке высокого уровня в телекоммуникациях ”. //
СибГУТИ
. Культин
Н.Б. "Основы программирования Тurbo
Delphi", 2007 г.;
. Чеснокова
О.В. “Delphi
2007”,
2007;