На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Создание модульной программы в среде Delphi

Информация:

Тип работы: курсовая работа. Добавлен: 05.07.2012. Сдан: 2010. Страниц: 25. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Содержание
1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ 4
1.1 Введение 4
1.2 Назначение разработки 4
1.3 Требования к программе или программному изделию 5
    1.3.1 Аппаратные требования, требования к совместимости 5
    1.3.2 Процессы обработки 6
    1.3.3 Результирующие компоненты изделия 6
1.4 Требования к программной документации 7
2 ТЕХНИЧЕСКИЙ ПРОЕКТ 8
2.1 Назначение и область применения 8
2.2 Разработка структуры приложения 8
2.3 Описание частей программы 9
    2.3.1 Подсистема построения эллипса 9
    2.3.2 Подсистема динамический список 9
    2.3.3 Подсистема графический редактор «Окружности» 9
    2.3.4 Подсистема информации о странах мира 10
    2.3.5 Подсистема-тест 10
2.4Инструкции, включающие в себя  средства для работы  с программой 10
3 РАБОЧИЙ ПРОЕКТ 16
3.1 Общие сведения 16
3.2 Основная программа Курсовой проект 16
    3.2.1 Создание меню 16
3.3 Программа «Эллипс» 17
3.4 Программа динамического списка 17
3.5 Программа графический редактор «Окружности» 18
3.6 Программа информация о преподавателях ВУЗа 20
3.7 Программа-тест 21
3.8 Методика испытаний 21
СПИСОК  ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 25
ПРИЛОЖЕНИЕ 26 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    ТЕХНИЧЕСКОЕ ЗАДАНИЕ
      Введение
    система Delphi, C++ Bulider и т.д. завоевали себе репутацию самого эффективного средства разработки приложений для баз данных, то есть программ, обслуживающих электронные хранилища информации. Машина BDE является средством доступа к данным разного формата (локальным таблицам типа Paradox, FoxPro, к серверам баз данных InterBase, MS SQL Server).
    Delphi располагает большим набором полезных функций. Каждая из них является членом какого-либо класса. Классы группируются по пространствам имён, которые имеют (как правило) вложенную структуру. Средством навигации по множествам классов в пространствах имён является оператор.
    В приложении объявляется собственное  пространство имён и используются ранее  объявленные пространства. В процессе построения сборки Delphi должен знать расположение сборок с заявленными для использования пространствами имён. Расположение части сборок системе известно изначально. Расположение прочих требуемых приложению сборок указывается явно. Там надо указать соответствующий .dll или .exe файл. В частности, сборка, содержащая классы, сгруппированные в пространстве имён System, располагается в файле mscorlib.dll.
    Программные продукты фирмы Borland (Delphi, C++ Bulider) являются одними из наиболее часто используемых при разработке приложений. Простота построения интерфейса, структурированная модель обработки событий позволяет даже начинающему пользователю легко работать с программами, разработанными в данных средах.
      Назначение  разработки
    Функциональное  и эксплуатационное назначение изделия
    Данный  проект разработан, для того чтобы  показать, каким образом можно  обращаться к программам, разработанных  в различных языках программирования, объединив их в один комплекс программ, разработанного в качестве простейшего  меню в языке Borland Delphi. Таким образом, данная программа полезна в обучающем процессе (для ознакомления с возможностью представления комплекса программ в одном простейшем меню, разработанного различными способами).
    Разработанный комплекс программ должен решать следующие  прецеденты:
    Вызывать из разработанного меню запрошенную пользователем задачи.
    «Эллипс».
    «Динамический список».
    «Графический редактор».
    «Информационно-поисковая система».
    «Тест «Погода и характер».
      Требования  к программе или  программному изделию
    К разрабатываемому программному продукту должны быть предусмотрены следующие  требования:
    Понятный пользователю интерфейс.
    Простота в работе с программой.
    Работоспособность всех прикладных компонентов.
    Возможность самостоятельной проверки корректной работы приложений (тестирование).
        Аппаратные  требования, требования к совместимости
    Для работы программы достаточны следующие  аппаратные средства:
    Персональный компьютер с процессором не ниже Pentium 2 (или аналоговым процессором), с тактовой частотой около 500 МГц.
    Жесткий диск.
    Наличие достаточного объема виртуальной памяти.
    Для работы программы так же необходима совместимая среда программирования:
    Комплекс программ должен быть написан на языке Borland Delphi.
    Проект должен работать под управлением операционной системы Windows-95,98,NT,2000 и выше.
    Для запуска разработки необходимо наличие ЕХЕ – файла программы (выполняемого файла), а также необходимо наличие  библиотек работы с устройствами.
    Достаточный объем свободной оперативной памяти.
        Процессы  обработки
    Если  рассмотреть программный модуль как черный ящик с неизвестным  нам содержимым, то он должен выполнять  следующие операции:
    Открывать список всех программ, загруженных в меню
    Позволять выбирать и запускать программы на выполнение
    Позволять тестировать программный продукт
    Предоставлять инструкцию к пользованию данным продуктом
        Результирующие  компоненты изделия
    Программное изделие должно содержать: тексты программ, представляющие собой комплекс файлов, содержащих совокупности операторов языка  программирования, и готовые программы, полученные в результате компиляции исходных модулей. Также должны прилагаться  распечатка текстового файла, содержащего  результаты. Для запуска программы  должен присутствовать запускной файл, а также файл библиотеки. Так же  необходимо наличие вспомогательных  файлов для запуска их из меню.
      Требования к программной документации
    Программа основного модуля (Form1) представлена исходным текстом, написанного на языке Borland Delphi. Вспомогательные программы (программы, вызываемые из меню) представлены текстами исходных модулей на языке Borland Delphi. Так же в документации должны быть представлены инструкции по эксплуатации каждой программы и всего программного модуля.
    Пояснительная записка по данному программному продукту должна содержать 3 основные части:
    Техническое задание.
    Технический проект.
    Рабочий проект.
    ТЕХНИЧЕСКИЙ ПРОЕКТ
      Назначение  и область применения
    Данный  программный продукт предназначен для учебных целей. Он позволяет  применить все возможные способы  разработки меню в среде программирования, основанной на языке Borland Delphi. Таким образом, данная программа является основополагающим, разрабатываемым продуктом в данной работе. Основной модуль программы – это простейшее меню, при помощи которого пользователь вызывает подпрограммы. Данные подпрограммы выполняют поставленные перед ними задачи, выдавая готовый результат.
    Области применения данного продукта очень  широки: начиная с простого учебного пособия, заканчивая сложнейшей программой в любой сфере деятельности человека. Данную программу можно применить  как одну из составных частей других программных продуктов.
    Таким образом, программа, разрабатываемая  в рамках данного курсового проекта, является разработкой одного модуля для каких-либо более сложных  программ.
      Разработка  структуры приложения
    Структура данного приложения выглядит следующим  образом: основной модуль – МЕНЮ; пять вспомогательных модулей (подпрограмм):
      Программа построения эллипса;
      Программа, динамический список;
      Программа, графический редактор-приложение;
      Программа-приложение, предоставляющая информацию о преподавателях ВУЗа;
      Программа, которая представляет собой тест;
    Данная  структура разрабатывалась в  следующей последовательности:
        Были разработаны все подпрограммы, включенные в основной модуль разработки – МЕНЮ, (написаны на языке высокого уровня Borland Delphi 7).
        Было разработано основное МЕНЮ, (написанное на языке Borland Delphi 7).
        Все вспомогательные подпрограммы были подключены через команду winexec к меню.
    Таким образом, был разработан основной программный продукт, который включил в себя все программы (для упрощения подключения подпрограмм все файлы были собраны в одном общем каталоге).
      Описание  частей программы
    Главная программа включает в себя несколько  самостоятельных программ, каждая из которых выполняет характерные  только для нее функции. Таким  образом, данный программный продукт  может выполнять следующие функции:
    Метод наследования и присвоения классов.
        Подсистема  построения эллипса
    Подсистема  называется «Эллипс» и отображает эллипс, смещающийся в сторону.
        Подсистема  динамический список
    Подсистема  называется «Динамический список» и выполняет следующее действие:
    сохраняет фамилию и имя студента в памяти, затем их можно показать в отдельном окне.
        Подсистема графический редактор «Окружности»
    Подсистема  называется «Графический редактор» и выполняет следующее действие:
    программа показывает квадрат или окружность с изменяемым радиусом и цветом контура фигуры.
        Подсистема  информации о странах мира
    Подсистема  называется «Информационная система» и приводит информацию о преподавателях ВУЗа. Информация загружается из файла, если работа в программе проводится первый раз, то надо заполнить исходный файл. Программа включает в себя данные о фамилии, должности, ученой степени и кафедре.
        Подсистема-тест
    Подсистема  называется «Тест» и выполняет следующее действие:
    по  нажатии на кнопку «Начать тест»  перед пользователем появляется вопрос и три варианта ответа. По завершению тестирования можно увидеть  результат.
      Инструкции, включающие в себя средства для работы с программой
    Работать  с основным программным продуктом  может справиться даже начинающий пользователь, так как программа содержит только кнопки меню (на русском языке) и не требует ввода каких либо данных. Внешний интерфейс основного программного продукта приведен на рисунке 2.1. Пользователь может вызвать подпрограммы, сделав один щелчок левой кнопкой мыши по кнопке.

    Рисунок 2.1 - Внешний интерфейс главного окна 

    Программа построения эллипса (Эллипс):
    Форма данного модуля представлена на рисунке 2.2.
 

    Рисунок 2.2 - Построение эллипса
    Программа показывает эллипс, который смещается в сторону. При нажатии кнопки «Нарисовать эллипс» присваиваются координаты x и y – координаты начальной точки построения. 1 мм = 3 пикселя, координата второй точки равна x+40*3, y+27*3(большая ось равна 40 мм, а меньшая 27 мм). 

    Программа динамического списка (Динамический список).
    Форма данного модуля представлена на рисунке 2.3.

    Рисунок 2.3 – Динамический список
    В поля ввести имя и фамилию и  нажать кнопку «Добавить». Чтобы посмотреть список следует нажать кнопку «Показать», откроется окно с введенными фамилиями  и именами. 

    Программа графический редактор «Окружности» (Графический редактор):
    Форма данного модуля представлена на рисунке 2.4.

    Рисунок 2.4 – Графический редактор
    Выбираем  вид фигуры, затем радиус, можно  также изменить цвет фигуры, щелкнув  по кнопке «Выбрать цвет». Так же можно  изменить размер и цвет всех фигур. Фигура рисуется кликом левой кнопки мыши. 

    Программа-приложение просмотра информации о преподавателях ВУЗа (Информационная система):
    Форма данного модуля представлена на рисунке 2.5.
 

    Рисунок 2.5 – Информационно-поисковая система
    Для работы в этой программе пользователь должен загрузить информацию из файла  или заполнить поля в таблице  и сохранить данные (если работа в программе ведется первый раз). 

    Программа-тест (Тест):
    Форма данного модуля представлена на рисунке 2.6.
 

    Рисунок 2.6 – Тест «Погода и характер»
    Нажав на кнопку «Начать тест» появится вопрос и три варианта ответа. После щелчка мыши по одному из вариантов появится следующий вопрос и т.д. По завершению теста выводится результат.
    РАБОЧИЙ ПРОЕКТ
      Общие сведения
    Для написания программы использовался  язык программирования Borland Delphi 7. Данный язык имеет различные функции разработки программ.
    Все вызовы подпрограмм прописаны через стандартный компонент Button, а ехе – файлы подключены через функцию winexec.
    Все подключенные модули, написаны на языке  Borland Delphi 7 и состоят из одного модуля.
      Основная  программа Курсовой проект
    Для написания основной программы, которая  должна представлять собой список выбора подпрограмм были объявлены структуры данных для хранения меню:
    на  главной форме расположены компоненты Button – обозначающие кнопки.
    Далее были подключены ехе – файлы для запуска подпрограммы.
        Создание  меню
    Для создания меню использовался компонент Button.
    На  форме расположены кнопки с пронумерованными программами и кратким их описанием.
    
    Рисунок 3.1 - Код запуска программ через кнопку
      Программа «Эллипс»
    Данная  программа представляет собой программу-приложение в Borland Delphi.
    Эллипс  рисуется при нажатии на кнопку «Нарисовать  эллипс». Эллипс строится по координатам и формуле:
    
    Рисунок 3.2 – Код построения эллипса
      Программа динамического списка
    Данная  программа позволяет хранить информацию в списке в памяти компьютера. Чтобы добавить элемент в список, нужно ввести имя и фамилию и щелкнуть на кнопку Добавить.
    
    Рисунок 3.3 – Код процедуры добавления в список 

    Для просмотра списка нужно нажать на кнопку «Показать».
    

    Рисунок 3.4 – Код процедуры вывода списка
      Программа графический редактор «Окружности»
    Данная  программа позволяет рисовать окружности и квадраты. Местоположение центра фигур определяется левой кнопкой мыши. Размер фигур и контур цвета настраивается. Входными данными для нее являются вид фигуры, размер фигуры и цвет контура. Выходными данными является нарисованная фигура.
    procedure TForm1.Button1Click(Sender: TObject);
    Данная  процедура позволяет выбрать цвет контура фигуры (копка «Цвет»).
    В компоненте SpinEdit изменяется размер фигуры.
    По  левому клику мыши рисуется фигура:
    
    Рисунок 3.5 - Код прорисовки фигуры 

Диаграмма класса
     Диаграмма класса TMainForm, наследуемого от стандартного класса Tform и включающего объектные поля стандартных классов Delphi. 

Иерархия  классов
     Иерархии классов  предметной области (иерархия с абстрактным классом). 

      Программа информация о преподавателях ВУЗа
    Данный  модуль представляет собой программу-приложение разработанное в Borland Delphi содержащая данные о преподавателях. Для работы в программе необходимо выполнить следующие действия:
    Щелкните по кнопке «Имена полей».
    Определите  число записей в матрице, нажмите OK.
    Введите данные.
    Щелкните по кнопке «Запись в Мемо», произойдет копирование данных из матрицы в поле Мемо.
    Выберете команду Файл\Сохранить файл из главного меню, задайте имя несуществующего файла с расширением xls (файл Excel). Файл будет создан автоматически.
    Если  работа с программой происходит не первый раз и информация уже хранится в файле, то необходимо выполнить  следующие действия:
    Пункты  1. и 2.  выполняются аналогично.
    3. Выберете команду Файл\Открыть файл из главного меню, затем выберете нужный файл. Данные окажутся в поле Мемо.
    4. Щелкните по кнопке  «Запись в 1 строку матрицы», данные из поля Mемо записываются в первую строку матрицы. Затем щелкните по кнопке «Запись в матрицу».  Данные запишутся в  прямоугольный блок ячеек в соответствии  с заданным видом таблицы.
    Для поиска информации по заданному значению поля «фамилия» необходимо ввести фамилию преподавателя, затем щелкнуть по кнопке «Поиск». Если в таблице находится информация о нескольких преподавателях с одинаковой фамилией, то при повторном нажатии кнопки «Поиск» будет найден второй преподаватель. Записи о данных поиска будут выдаваться последовательно. Если необходимо начать повторный поиск с первой записи, то предварительно следует щелкнуть по кнопке «Сброс № строки».
      Программа-тест
    Данная  программа разработана как тест, какие чувства и ассоциации у вас вызывает та или иная погода. После нажатия на кнопку «Начать тест» появляются вопрос и варианты ответа. После щелчка мыши по одному из вариантов появляется следующий вопрос и т.д. По завершении теста выводится результат.
      Методика  испытаний
    Для проверки правильности работы программ, проведем тестирование всех модулей.
    Тест 1. (программа построения эллипса).
    Входом  этой программы будет щелчок мыши по кнопке на форме.
 

    Рисунок 3.6 Тест программы построения эллипса 

    Тест 2. (программа динамический список).
    В качестве входных данных введем произвольные две фамилии и два имени. После добавления проверим, сохранились ли введенные данные в памяти, для этого нажмем на кнопку «Показать».
    
 

    Рисунок 3.7 Тест программы «Динамический список» 

    Тест 3. (программа графический редактор).
    В качестве входных данных выберем тип фигуры окружность, установим размер фигуры равной 20 и красный цвет контура. Щелкнем три раза по полю, в котором рисуются фигуры. В результате мы увидим три нарисованные окружности, затем выберем квадрат и, щелкнув по полю для рисования увидим нарисованные квадраты.
    
    Рисунок. 3.8 Тест программы графический редактор «Окружности» 

    Тест 4. (программа информация о преподавателях ВУЗа).
    Входными  данными будет созданный заранее файл, загруженный с компьютера.

    Рисунок 3.9 Тест программы информация о преподавателях ВУЗа 

    Тест 5. (программа-тест создание мультипликации).
    Нажав на кнопку «Начать тест» отобразятся вопрос и кнопки вариантов ответов. Ответив на вопрос, появится следующий вопрос и так пока не кончатся вопросы. По завершении теста появится результат.
 

    Рисунок 3.10 Тест программы-теста

        СПИСОК  ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

      Гофман, В. Delphi 5. В. Гофман, А. Хомоненко  – BHV , Санкт-Петербург , 1999 г, 800 с.
      Архангельский, A.Я. Программирование в Delphi 5. A.Я. Архангельский  – Бином, Москва , 2000 г, 1100 с.
      Гради Буч. Обектно- Ориентированный Анализ и Проектирование. Издание Бином” Невский диалект”1998г.
      Писарев Т.В. «Программирование в Delphi6». М.: ДМК Пресс  2002 г.
      Delphi. Быстрый старт, Гофман В. Э., Хомоненко А. Д.. — СПб.: БХВ-Петербург, 2003. — 288 с: ил.
      Delphi 2005. Разработка приложений для баз данных и Интернета, Валерий Фаронов, изд. Питер, 2006 г
      Е. Марков, В. Никифоров. Delphi 2005 для .NET. - СПб.: БХВ-Петербург, 2005. - 896 с: ил.
      М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер. OpenGL. Руководство по программированию. 4-е издание. 2006.

    ПРИЛОЖЕНИЕ 1

    Листинг программы Курсовой проект 

  unit Unit1;
  interface
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls; 

  type
    TForm1 = class(TForm)
      Button1: TButton;
      Button2: TButton;
      Button3: TButton;
      Button4: TButton;
      Button5: TButton;
      procedure Button1Click(Sender: TObject);
      procedure Button2Click(Sender: TObject);
      procedure Button3Click(Sender: TObject);
      procedure Button4Click(Sender: TObject);
      procedure Button5Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end; 

  var
    Form1: TForm1;
  implementation
  {$R *.dfm} 

  procedure TForm1.Button1Click(Sender: TObject);
  begin
     winexec('Программы/Эллипс.exe',sw_show);
  end; 

  procedure TForm1.Button2Click(Sender: TObject);
  begin
    winexec('Программы/Динамический список.exe',sw_show);
  end; 

  procedure TForm1.Button3Click(Sender: TObject);
  begin
  winexec('Программы/Класс.exe',sw_show);
  end; 

  procedure TForm1.Button4Click(Sender: TObject);
  begin
    winexec('Программы/Информационная система.exe',sw_show);
  end; 

  procedure TForm1.Button5Click(Sender: TObject);
  begin
    winexec('Программы/Тест.exe',sw_show);
  end;
  end. 
 
 

    ПРИЛОЖЕНИЕ 2
    Листинг программы построения эллипса 

  unit Unit1;
  interface
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ComCtrls, StdCtrls, Buttons, XPMan; 

  type
    TForm1 = class(TForm)
      StatusBar1: TStatusBar;
      BitBtn1: TBitBtn;
      XPManifest1: TXPManifest;
      procedure FormCreate(Sender: TObject);
      procedure BitBtn1Click(Sender: TObject);
      procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
        Y: Integer);
    private
      { Private declarations }
    public
      { Public declarations }
    end; 

  var
    Form1: TForm1;
    x,y:integer;
  implementation
  {$R *.dfm} 

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  form1.Caption:='Эллипс';
  end; 

  procedure TForm1.BitBtn1Click(Sender: TObject);
  begin
  x:=100;
  y:=50;
  while x>0 do
   begin
   x:=x-1;
  Canvas.Ellipse(x, y, x+40*3, y+27*3);
  Canvas.FloodFill(10, 10, clBlack, fsBorder);
   end;
  end; 

  procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
  begin
  form1.StatusBar1.Panels[0].Text:='Координаты:'+inttostr(x)+','+inttostr(y);
  end;
  end. 
 
 
 
 
 
 

    ПРИЛОЖЕНИЕ 3
    Листинг программы «Динамический список» 

    u unit dlist1_;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls; 

    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Edit1: TEdit;       // фамилия
        Edit2: TEdit;       // имя
        Button1: TButton;   // кнопка Добавить
        Button2: TButton;   // кнопка Показать
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end; 

    var
      Form1: TForm1; 

    implementation
    {$R *.DFM} 

    type
      TPStudent=^TStudent; //указатель на тип  TStudent 

      TStudent = record
    f_name:string[20];  // фамилия
    l_name: string[20]; // имя
    next: TPStudent;    // следующий элемент  списка
      end; 

    var
      head: TPStudent;  // начало (голова) списка 

    // добавить элемент в начало  списка
    procedure TForm1.Button1Click(Sender: TObject);
    var
       curr: TPStudent;  // новый элемент списка
    begin
       new(curr); // выделить память для элемента списка
       curr^.f_name := Edit1.Text;
       curr^.l_name := Edit2.Text; 

       // добавление в начало списка
       curr^.next := head;
       head := curr; 

       // очистить поля ввода
       Edit1.text:='';
       Edit2.text:='';
    end; 

    // вывести список
    procedure TForm1.Button2Click(Sender: TObject);
    var
      curr: TPStudent;  // текущий элемент списка
      n:integer;        // длина (кол-во элементов) списка
      st:string;        // строковое представление списка
    begin
      n := 0;
      st := '';
      curr := head;  // указатель на первый элемент списка
      while curr <> NIL do
        begin
          n := n + 1;
          st := st + curr^.f_name + ' ' + curr^.l_name +#13;
          curr := curr^.next;  // указатель на следующий элемент
        end; 

     if n <> 0
        then ShowMessage('Список:' + #13 + st)
        else ShowMessage('В списке нет элементов.');
    end;
    end. 
 
 
 
 
 

    ПРИЛОЖЕНИЕ 4
    Листинг программы графический редактор «Окружности» 

    Модуль Unit2 

    unit Unit2;
    interface
    uses extctrls, Graphics; 

    Type
    TMyFigure = class
    private
    x,y,r: Word; {координаты центра и радиус окружности}
    Color: TColor; {цвет}
    Image: TImage; {поле для рисования}
    Procedure Clear; {стирание окружности} 

    public
    Constructor Create(aImage:TImage; ax,ay,ar:Word;aColor:TColor); {конструктор}
    Procedure Draw; virtual; abstract; {абстрактная процедура}
    Procedure ReSize(ar:Word); {изменение размеров}
    Procedure ReColor(acolor:TColor); {изменение цвета}
    end; 

    TMyCircle=class (TMyFigure) {класс Окружность}
    public
    Procedure Draw; override; {рисование окружности}
    end; 

    TMySquare=class (TMyFigure) {класс Квадрат}
    Procedure Draw; override; {рисование квадрата}
    end; 

    implementation
    Constructor TMyFigure.Create;
    begin
    inherited Create; {вызвать наследуемый конструктор}
    Image:=aImage; {инициализировать поле}
    x:=ax; y:=ay; r:=ar; Color:=aColor;
    end; 

    procedure TMyFigure.Clear;
    var
    TempColor:TColor;
    begin
    TempColor:=Color; {сохранить цвет пера}
    Color:=Image.Canvas.Brush.Color; {фиксировать цвет фона}
    Draw; {нарисовать цветом фона - стереть}
    Color:=TempColor; {восстановить цвет пера}
    end; 

    procedure TMyFigure.ReSize;
    begin
    Clear;
    r:=ar;
    Draw;
    end; 

    procedure TMyFigure.ReColor;
    begin
    Clear;
    Color:=aColor;
    Draw;
    end; 

    procedure TMyCircle.Draw;
    begin
    Image.Canvas.Pen.Color:=Color; {задать цвет пера}
    Image.Canvas.Ellipse(x-r,y-r,x+r,y+r); {нарисовать окружность}
    end; 

    procedure TMySquare.Draw;
    begin
    Image.Canvas.Pen.Color:=Color;
    Image.Canvas.Rectangle(x-r,y-r,x+r,y+r);
    end;
    end. 

    Модуль Unit1 

    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, Spin; 

    type
      TMainForm = class(TForm)
        rLabel: TLabel;
        SpinEdit: TSpinEdit;
        ColorButton: TButton;
        Shape1: TShape;
        Image: TImage;
        ColorDialog: TColorDialog;
        TypeFigure: TRadioGroup;
        ExitButton: TButton;
        Button1: TButton;
        Button2: TButton;
        procedure FormActivate(Sender: TObject);
        procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure ColorButtonClick(Sender: TObject);
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.