Постановка задачи и описание программного продукта

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

Курсовая работа.doc

— 240.77 Кб (Скачать документ)

    область видимости, определяемая четвертой директивой - "published", имеет особое значение для интерфейса визуального проектирования Delphi. В этой секции должны быть собраны те свойства объекта, которые будут видны не только во время исполнения приложения, но и из среды разработки. Все свойства компонентов доступны через "Инспектор объектов", являются их опубликованными свойствами. Во время выполнения такие свойства общедоступны как и "public".

    Три области видимости - "private", "protected","public" - как бы упорядочены по возрастанию видимости методов. В классах-потомках можно повысить видимость методов и свойств, но не понизить ее: если какое-либо свойство объекта из состава VCL принадлежит к области "public", вернуть его в "private" невозможно. Обратная процедура широко практикуется в Delphi. 

 

    ПОСТАНОВКА ЗАДАЧИ И ОПИСАНИЕ ПРОГРАММНОГО ПРОДУКТА.

        Постановка задачи.

    Целью курсовой работы является разработка и создание программы построения графиков функций. Для это будет использован объектро-ориентированный язык программирования Borland Delphi.

        Описание компонент программы.

        Компоненты GroupBox и CheckBox

    GroupBox во многом похож на обычную панель. Он предназначен для группировки схожих по смыслу компонентов. Текст из свойства Caption выходит не посреди панели, а вверху, создавая таким образом заглавие этой панели. При перемещении GroupBox, будут перемещаться и все компоненты, расположенные на нем.

    CheckBox - простой переключатель. Свойство Checked компонента CheckBox показывает включен ли компонент, другими словами, установлена ли в нем "галочка". Название переключателя пишется в свойстве Caption.

      Компонент TImage

    Этот компонент служит для размещения на форме одного из трех поддерживаемых 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.

    Компоненты 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,step:extended;

       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:=clwhite;

    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)*ymnoj));

Информация о работе Постановка задачи и описание программного продукта