Автор работы: Пользователь скрыл имя, 04 Декабря 2011 в 11:58, курсовая работа
Работа с графикой в Delphi это не только линии и рисунки, но также и и печать текстовых документов. Поэтому в Delphi работе с графикой нужно уделить немного времени. Работа с графикой в Delphi предполагает обращение к Canvas - свойству Canvas компонентов. Canvas Delphi это холст, который позволяет программисту иметь доступ к каждой своей точке (пикселу), и словно художнику отображать то, что требуется. Конечно, рисовать попиксельно для работы с графикой в Delphi не приходится, система Delphi предоставляет для мощные средства работы с графикой, облегчающие задачу программиста.
ВВЕДЕНИЕ 2
1. Объектно-ориентированное программирование в Delphi. 4
2. Постановка задачи и описание программного продукта. 10
2.1. Постановка задачи. 10
2.2. Описание компонент программы. 10
2.2.1. Компоненты GroupBox и CheckBox 10
2.2.2. Компонент TImage 10
2.2.3. Компоненты OpenDialog, SaveDialog. 12
Заключение. 13
Список использованной литературы. 14
область видимости, определяемая четвертой директивой - "published", имеет особое значение для интерфейса визуального проектирования Delphi. В этой секции должны быть собраны те свойства объекта, которые будут видны не только во время исполнения приложения, но и из среды разработки. Все свойства компонентов доступны через "Инспектор объектов", являются их опубликованными свойствами. Во время выполнения такие свойства общедоступны как и "public".
Три
области видимости - "private", "protected","public"
- как бы упорядочены по возрастанию видимости
методов. В классах-потомках можно повысить
видимость методов и свойств, но не понизить
ее: если какое-либо свойство объекта из
состава VCL принадлежит к области "public",
вернуть его в "private" невозможно. Обратная
процедура широко практикуется в Delphi.
Целью курсовой работы является разработка и создание программы построения графиков функций. Для это будет использован объектро-ориентированный язык программирования Borland Delphi.
GroupBox во многом похож на обычную панель. Он предназначен для группировки схожих по смыслу компонентов. Текст из свойства Caption выходит не посреди панели, а вверху, создавая таким образом заглавие этой панели. При перемещении GroupBox, будут перемещаться и все компоненты, расположенные на нем.
CheckBox - простой переключатель. Свойство Checked компонента CheckBox показывает включен ли компонент, другими словами, установлена ли в нем "галочка". Название переключателя пишется в свойстве Caption.
Этот компонент служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки, пиктограммы или метафайла. Любой из этих типов изображения содержится в центральном свойстве компонента -- picture. В свойстве canvas содержится канва, с помощью которой при необходимости программа может отредактировать растровое изображение (но не пиктограмму или метафайл).
Он дает отображение на форме графического изображения. Свойство Picture типа TPicture содержит отображаемую графическую сотавляющюю у которой тип - битовая матрица, пиктограммы, метафайла или определенного пользователем типа. Свойство Canvas позволяет создавать и редактировать изображения.
Основные свойства
Свойство | Описание |
AutoSize property AutoSize: Boolean; | Указывает, изменяется ли автомататом размер компонента, подстраиваясь под размер изображения. По умолчанию значение false -- не подстраивается. |
Canvas property Canvas: TCanvas | Определяет поверхность (холст, канву) для рисования пером Реп и кистью Brush, для наложения друг на друга нескольких изображений. Доступен только для чтения. Можно получить доступ, если в свойство Picture содержит битовую матрицу. |
Center property Center: Boolean; | Указывает, должно ли изображение центрироваться в поле компонента, если его размеры меньше размеров поля. При значении false изображение располагается в верхнем левом углу поля. Свойство не действует, если AutoSize установлено в true или если Stretch установлено в true и Picture содержит не пиктограмму. |
IncrementalDisplay property IncrementalDisplay: Boolean; | Указывает, должно ли изображение частично рисоваться во время медленных операций с большими изображениями. Вместо такого рисования часто можно использовать индикацию процесса обработкой событий OnProgress. |
Picture property Picture: TPicture | Определяет отображаемый графический объект типа TPicture. Может загружаться программно или во время проектирования с помощью Picture Editor. |
Stretch property Stretch: Boolean | Указывает, должны ли изменяться размеры изображения, подгоняясь под размеры компонента. Учтите то, что при изменении размеров изображения будет искажение, когда соотношение сторон графического объекта и компонента Image не совпадают. |
Transparent property Transparent: Boolean | Указывает, должен ли быть цвет фона изображения прозрачным, чтобы сквозь него было видно нижележащее изображение. |
Основные методы
Никаких специальных методов в компоненте не объявлено. Компонет наследует множество методы от базового класса TControl.
Событие | Описание |
OnProgress | События происходят при медленных процессах изменения графического изображения и позволяют построить индикатор хода процесса. |
Компоненты OpenDialog -- диалог «Открыть файл» и SaveDialog -- диалог «Сохранить файл как...», пожалуй, используются чаще всего, в большинстве приложений.
Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, -- FileName. Значение этого свойства можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне Имя файла.
Типы искомых файлов, появляющиеся в диалоге в выпадающем списке Тип файла, задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла диалога. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра.
Архангельский А. Я. Программирование в Delphi г. Москва: издательство «Бином», 2005г. - 332 с.;
Ахметов А. Р. Программирование в Delphi 7 . г.Москва: издательство «Бином-Пресс», 2003 г. - 780 с.;
Бобровский С.И. Delphi7 - Учебный курс. г. Санкт-Петербург: издательство «Питер», 2004 г. - 736 с.;
Глушаков С. В. Delphi 2007 г. Москва: издательство «Хранитель», 2008 г. - 635 с.;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Gauges, MyMath, Unit2;
type
TForm1 = class(TForm)
StartBtn: TButton;
Image1: TImage;
ClearBtn: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Gauge1: TGauge;
FormEd: TEdit;
XStart: TEdit;
XEnd: TEdit;
StepEd: TEdit;
LinesCh: TCheckBox;
MashCh: TCheckBox;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
XEd: TEdit;
YEd: TEdit;
StartBtn2: TButton;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
OpenBtn: TButton;
SaveBtn: TButton;
AbBtn: TButton;
procedure StartBtnClick(Sender: TObject);
procedure ClearBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure StartBtn2Click(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure AbBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var x,y:array of extended;
xmnoj,ymnoj,ymin,ymax,xe,xs,
graph:boolean=false;
ram:boolean=false;
f:file of extended;
fn:string;
procedure XYMinMax;
var n:cardinal;
imh,imw:word;
begin
form1.caption:='Graphics - Поиск минимальных и максимальных значений для масштабирования';
form1.gauge1.maxvalue:=high(y)
if form1.mashch.checked=true then
begin
//если масштабирование отмечено, то ищется множитель для x и y
imh:=form1.image1.height;
imw:=form1.image1.width;
ymax:=y[1];
ymin:=y[1];
for n:=0 to high(y) do
begin
if ymax<y[n] then ymax:=y[n];
if ymin>y[n] then ymin:=y[n];
form1.gauge1.progress:=n;
end;
if ymax-ymin=0 then ymnoj:=1
else ymnoj:=imh/abs(ymax-ymin);
if xe-xs=0 then xmnoj:=1
else xmnoj:=imw/abs(xe-xs);
end else
//а если масштабирование не отмечено, то множители равны нулю
begin
ymnoj:=1;
xmnoj:=1;
end;
form1.caption:='Graphics - Поиск завершен';
end;
procedure ris;
var n:cardinal;
imh,imw:word;
begin
form1.caption:='Graphics - Построение графика';
form1.image1.canvas.pen.color:
imh:=form1.image1.height;
imw:=form1.image1.width;
form1.gauge1.maxvalue:=high(x)
//рисует оси
with form1.image1.canvas do
begin
pen.style:=psdot;
moveto(0,imh-trunc((-ymin)*
Информация о работе Постановка задачи и описание программного продукта