Программирование в Delphi. Компоненты страниц Dialogs и Samples

 

 
 

 

Содержание

 

Содержание 3

Введение 5

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

1.1 Назначение и функции программы 8

1.2  Информационная база задачи 8

    1.2.1 Входная информация 8

    1.2.2 Выходная информация 9

1.3 Система меню 9

1.4 Система помощи 9

1.5 Контрольные примеры 10

1.6 Алгоритм программы 11

1.7 Обзор языка программирования и среды разработки программ. 11

2. Описание программы 18

2.1 Описание модулей программы 18

3. Описание применения 20

Заключение 22

Список используемых источников 23

Приложение 1 24

Листинг основных модулей программы 24

Приложение 2 32

Внешний вид форм программы 32

    Главная форма: 32

Приложение 3 33

Список использованных компонентов 33

 

Введение

    В данной курсовой работе предложено создать  Windows-приложение на алгоритмическом языке Object Pascal в среде визуального программирования Delphi. Разработчику ставиться вполне определенная задача, при выполнении которой используются навыки работы с операционными системами, программными оболочками, разнообразными служебными и сервисными средствами. А также навыки по алгоритмизации и программированию в интегрированной визуальной среде программирования Delphi.

    Delphi  – это среда разработки приложений, ориентированных на работу в операционных системах семейства Windows. Но кроссплатформенное программирование стало доступно в Delphi 7 благодаря использованию библиотеки компонентов CLX. При неизбежных для кроссплатформенного программирования трудностях реализации сложного кода, использующего системные вызовы и технологии удаленного доступа, в Delphi решена задача быстрого визуального проектирования пользовательского интерфейса. Для этого применяется набор стандартных компонентов, имеющих практически идентичную функциональность и схожий программный интерфейс.  Основой Delphi является графическая среда разработки приложений, называемая интегрированной средой разработки (IDE). Delphi, как и всякая современная среда разработки приложений основана на объектно – ориентированном программировании.

    Объектно  – ориентированное программирование-это 
 
 

    Программа в среде DELPHI составляется как описание алгоритмов, которые будут выполняться, если возникает определенное событие, связанное с формой или с каким-либо из размещенных на ней компонентов. Для каждого обрабатываемого события, с помощью страницы Events инспектора объектов в тексте программы организуется процедура (procedure), между ключевыми словами begin и end которой программист записывает на языке Object Pascal требуемый алгоритм.

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

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

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

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

    Список  использованных источников содержит полный перечень технической литературы, использованной для написания данной курсовой работы.

    Приложения  содержат блок-схему или обобщенный алгоритм работы программы, результаты тестирования программы и листинг  программы.

 

        

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

1.1 Назначение  и функции программы

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

   К требованиям к программе можно  отнести:

    • простота в обращении;
    • наглядность, в частности отображение компонент, соответствующих входным и выходным данным;
    • возможность сохранения, изменения, вывода и ввода из файла входных данных;
    • в случае возникновения ошибки, конкретно указать пользователю, в чем состоит его ошибка;
    • «понятность» отображаемого результата.

1.2 Информационная база задачи

   1.2.1 Входная информация

    Ко входной информации в данной программе относятся:

    • Текст, вводимый пользователем;
    • Изображения, импортируемые пользователем;

           Входной файл имеет следующую  структуру:

      1. Количество ячеек таблицы;
      2. Некоторый формат данных;

      Такую же структуру должен иметь файл, создаваемый            программой.

    Исходные  данные могут быть введены:

    1. Из файла;
    2. С клавиатуры, путем заполнения полей ввода;

        Ограничения входной информации: входная информация не ограничена.

      1.2.2 Выходная информация

    К выходным данным относятся данные, которые выводятся на монитор  в результате работы программного продукта. К ним можно отнести:

      1. Таблица с введёнными данными;
      2. Компонента с введённым текстом;
      3. Импортируемые изображения ;

1.3 Система меню

    Меню  в программе будет содержать  пять разделов: «Файл», «Шрифт», «Заливка», «Справка», «Выход».

    Подразделы  меню:

    «Открыть», «Сохранить», «Открыть изображение», «Сохранить изображение», «Выход».

      «Таблицы».

      «Заливка формы», «Заливка таблицы»

      «О программе…», «Справка».

1.4 Система помощи

      В программе используется контекстно-зависимая  помощь, содержащая 5 разделов и 11 подразделов:

      О методе:

         Описание метода;

      Поля  ввода:

         Количество вершин графа;

         Пропускная способность;

         Стоимость;

         Величина потока;

      Способы ввода данных:

         Ввод из файла;

         Ввод с клавиатуры;

         Заполнение случайными числами;

      Результат:

         Отображение результата расчета;

      Работа  с графом:

         Назначение стоков и истоков;

         Перемещение вершин графа. 

      Помощь  предоставляет пользователю информацию о программе, о полях ввода  и их ограничениях, о форме преставления результата расчета и др.

      В помощи используются изображения  окон программы, что делает ее наглядной  и простой для понимания.

1.5 Контрольные примеры

      Контрольные примеры, используемые для верификации  программы, можно разделить на следующие  группы:

      -примеры,  проверяющие контроль вводимых  из файла данных (количество вершин, пропускная способность, стоимость  дуг);

      -примеры,  тестирующие программу в исключительных  ситуациях (пользователь не назначил  сток и/или исток);

      -примеры,  проверяющие способность программы  определить максимальный поток  в графе (пользователь запрашивает  поток превышающий максимально  возможный);

      -примеры,  проверяющие правильность работы  программы в нормальных условиях.

1.6 Алгоритм программы

1.7 Обзор языка программирования и среды разработки программ.

     Важной  вехой в развитии программирования явилось создание и широкое распространение  языка Object Pascal. Этот язык, сохранив средства ставшего общепризнанным стандартом для написания системных и прикладных программ языка Pascal (процедурно-ориентированный язык), ввел в практику программирования возможности нового технологического подхода к разработке программного обеспечения, получившего название “объектно-ориентированное программирование”. В настоящее время наряду с Object Pascal существует множество других объектно-ориентированных языков программирования.

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

     Delphi - это комбинация нескольких важнейших технологий:

  • высокопроизводительный компилятор в машинный код;
  • объектно-ориентированная модель компонент;
  • визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;
  • масштабируемые средства для построения баз данных.

     Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире. Он предлагает легкость разработки и быстрое время проверки готового программного блока и в то же время обеспечивает качество кода.

     Основной  упор объектно-ориентированной модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi.

     Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

     В данной курсовой предложено создание приложения с помощью компонент  страниц Dialogs и Samples.

     TOpenDialog и TSaveDialog - диалоги открытия и сохранения файлов

     Эти компоненты имеют идентичные свойства и поэтому рассматриваются вместе.

     Компоненты  TOpenDialog и TSaveDialog предназначены для организации стандартных диалоговых окон.

     Свойства:

     FileName: String;

     - позволяет на входе в диалоговое  окно задать маршрут поиска. При  выходе в свойстве содержится  имя выбранного файла;

     InitialDir: String;

     - позволяет установить начальный  каталог;

     Filter: String

     - позволяет установить фильтр  файлов, показываемых в диалоговом  окне. Представляет собой любое  количество пар последовательностей  символов, разделенных вертикальными  линиями. В каждой паре первая  часть – это текст - названии  фильтра, вторая часть – сам  фильтр. Например:

     Filter := ’Текстовые файлы (*.txt, *.doc)|*.txt, *.doc’;

     Компонент TOpenPictureDialog и TSavePictuteDialog

     Компоненты  TOpenPictureDialog и TSavePictuteDialog позволяют организовать специальные диалоги открытия и сохранения графических изображений. В них предусмотрены стандартные фильтры для выбора графических файлов (с расширениями bmp, ico, wmf и emf). Во-вторых, в окна диалога включены панели для предварительного просмотра выбираемого файла.

     TColorDialog

     Этот  компонент позволяет выбрать  стандартный цвет, либо задать собственный. Основным свойством данного компонента является

     Color: TColor;

     в котором содержится выбранный цвет.

     Компонент TFontDialog

     С помощью этого компонент можно  выбрать шрифт из множества шрифтов  Windows.

     Свойства  компонента TFontDialog задаются множеством:

     Device =(fdScreen, fdPrinter);

     - указывает, для какого устройства  задается шрифт.

     Font: TFont;

     - содержит описание выбранного  шрифта.

     Пример. Пусть на форме расположены компоненты SpeedButton1, FontDialog1, Labe1 и ColorDialog1. По нажатию  на SpeedButton1 необходимо осуществить последовательно  диалоги выбора цвета и шрифта. Пример:

     Procedure TForm1.Button1Click( );

     begin

       if ColorDialog1.Execute then

       Form1.Color := ColorDialog1.Color;

       if FontDialog1.Execute then

       Label1.Font := FontDialog1.Font;

     end;

Компонент TPrintDialog

     Эта компонента позволяет организовать управление принтером и устанавливать  его свойства.

     Свойства:

     Collate: Boolean;

     Если 

     Collate = true;

     то  можно использовать свойство CheckBox “Разобрать”. При этом сначала будет печататься первая копия, затем вторая и т.д.;

     Если

     Collate = false;

     сначала будут печататься все первые страницы, затем вторые и т.д.;

     Copies: Integer

     - указывает количество копий. Если  Copies = 0; то будет печататься одна копия.

     FromPage: Integer

     - определяет начальную страницу  печати;

     ToPage : Integer

     - определяет конечную страницу  печати;

     PrintRange =(prAllPages, prSelection, prPageNums);

     - определяет диапазон печатаемых  страниц.

     TPrinterSetupDialog - диалог настройки параметров принтера

     Компонент создает окно настройки параметров принтера, вид которого зависит от типа принтера. Этот диалог взаимодействует  с драйвером принтера и не возвращает в программу никакой информации, поэтому его метод Execute - процедура, а не функция.

     TFindDialog - диалог поиска

     Стандартное диалоговое окно компонента TFindDialog используется для поиска фрагмента текста.

     Свойства  компонента:

      property FindText: String; Указывает образец  для поиска
      property Left: Integer; Содержит горизонтальную позицию левого верхнего угла места  появления окна
      property Options: TFindOptions; Определяет  настройку диалога (см. ниже)
      property Position: TPoint; Содержит горизонтальную и вертикальную позицию левого верхнего угла места появления окна
      property Top: Integer; Содержит вертикальную позицию левого верхнего угла места  появления окна
 

     TReplaceDialog - диалог поиска и замены

     Компонент TReplaceDialog создает и обслуживает окно поиска и замены текстового фрагмента.

     Класс TReplaceDialog является прямым потомком класса TFindDialog и наследует от него большинство свойств. Дополнительно в компоненте определено свойство ReplaceText: string, в котором содержится текст замены, и событие OnReplace, которое возникает при нажатии кнопки заменить или заменить все.

 

4. Компоненты страницы  Samples 

     TGauge это графически улучшенный ProgressBar. Содержит в себе надпись процента выполнения действия. В свойствах MinValue, MaxValue, Progress указаны соответственно минимальное, максимальное и текущее значение. Свойство BackColor содержит цвет фона, а ForeColor - цвет заполнения. Свойством Kind можно задать разный тип отображения индикатора.

     Он  отличается от TProgress разнообразием форм.

property BackColor: TColor; property ForeColor: TColor; TGaugeKind = (gkText, gkHorizon-talBar, gkVerticalBar, gkPie, gkNeedle) ; Цвет незакрашенной части индикатора Цвет закрашенной части индикатора Определяет форму индикатора
property Kind: TGaugeKind; property MaxValue: Longint; Определяет  максимальное значение диапазона изменения  свойства progress
property MinValue: Longint; Определяет  минимальное значение диапазона  изменения свойства progress
property PercentDone: Longint; Содержит текущее  значение progress в процентах от его диапазона изменения
property Progress: Longing; Содержит текущее  значение изменяющейся числовой величины
property ShowText: Boolean; Если содержит True, в центре компонента выводится строковое представление значения PercentDone

     TColorGrid - выбор или отображение цвета

     Компонент предназначен для выбора и/или отображения  цветов из 16-цветной палитры. Выбирать/отображать можно два цвета: основной и фоновый. Основной выбирается щелчком левой  кнопки мыши и отображается символами  fg, фоновый выбирается правой кнопкой и отображается символами bg (если оба цвета совпадают, соответствующая клетка таблицы помечается символами fb).

     Индекс  цвета - это число в диапазоне 0... 15, указывающее номер соответствующей  ячейки в порядке перехода от самых  темных цветов к самым светлым: 0 - ячейка с черным цветом, 1 - с коричневым, ..., 15 - с белым цветом.

     Пары  свойств BackgroundEnabled - ClickEnablesColor И ForegroundEnabled - ClickEnablesColor запрещают выбор и отображение соответствующего цвета только в том случае, когда каждое из них имеет значение False. Однако даже в этом случае свойство selection хранит номер ячейки таблицы, по которой последний раз был произведен щелчок левой или правой кнопкой мыши. Это свойство изменяется до возникновения события от мыши и при необходимости может использоваться для выбора цвета без его отображения. С помощью метода

     function ColorToIndex(AColor: TColor): Integer;

     программа может получить индекс табличного цвета, наиболее близкого к цвету AColor. Событие

     property OnChange: TNotifyEvent;

     возникает только при разрешенном выборе/отображении  соответствующего цвета.

     TSpinEdit по своему функциональному назначению схож с компонентом TUpDown (страница Win32). Значение Value видно сразу в момент его изменения в индикаторе. Кроме того значение можно корректировать с помощью цифр.

     Компонент TSpinEdit предназначен для ввода/отображения числа. Он представляет собой комбинацию специализированного потомка однострочного редактора rcustomEdit и кнопок TSpinButton. Редактор способен вводить только числа (в этом и заключается его специализация), а кнопки используются для изменения числа на некоторую фиксированную величину.

     TDirectoryOutline показывает древовидный список каталогов.

     TCalendar - календарь. Свойство Year, Month, Day (год, месяц, день) разбиты на три отдельные части.

     В отличие от компонента TUpDown компонент TSpinButton не связан с регулированием числовой величины и может использоваться просто как пара кнопок: верхняя (up) и нижняя (Down). Для компонента следует написать обработчики его событий onup-click и onDownclick, в которых реализуется реакция программы на щелчок по той или иной кнопке.

     Рисунки на кнопках определяются свойствами upGlyph и DownGlyph. Каждый рисунок может содержать 1, 2 или 3 изображения: 1-е - для нормальной кнопки, 2-е - для запрещенной, 3-е - для нажатой.

 

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

    В этом разделе приводится описание модулей  программы в которых реализован ввод/вывод и сохранение данных, изменения всех окон формы, то есть решение поставленной задачи,

2.1 Описание  модулей программы

    Если  количество записей, необходимых ввести в таблицу,  превышает количество установленных строк таблицы, то создаём кнопку «Добавить» и разрешаем появление полос прокрутки, что позволяет ввести нужное количество информации в таблицу.

    Если  количество введённых записей при  использовании программы не нужно, то создадим кнопку «Очистить», что  позволяет одним нажатием этой кнопки очистить все ячейки.

Программирование в Delphi. Компоненты страниц Dialogs и Samples