|
САПР ЭП.11. Дополнительные (вспомогательные) задачи САПР |
11.1. Дополнительные компоненты стронних призводителей
11.2. Разработанные дополнительные компоненты
11.3. Программное беспечение создания и просмотра демонстрационных версий
11.4. Общая для всех программ dll-библиотека
Привлечение ЭВМ для решения технологических задач, в частности, для решения задачи автоматизации процесса проектирования, как известно, обуславливает необходимость в постановке и решении дополнительных задач. В данном разделе рассмотрены некоторые подобные вопросы и их решения.
© Романов А.В., Боряков А.Ю. "Компонент для визуализации форматированного текста" / М.: Национальный информационный фонд неопубликованных документов ФГУП "Всероссийский научно-технический информационный центр". 2009. № 50200900399 от 31.03.2009.
Компонент позволяет производить отображение сложного текста в удобной для зрительного восприятия форме на основе использования тегов HTML-форматирования. Поддерживаются настройка параметров шрифтов (имя шрифта, цвет, размер), надстрочные и подстрочные символы, начертание полужирное, курсив, подчеркивание. Возможно отображение формул в виде дроби. Основное назначение компонента - обеспечить естественный вид технического, химического и другого специального текста в прикладных специализированных программах. Компонент разработан на основе стандартного класса TLabel компонентов интегрированной среды разработки прикладного программного обеспечения Borland Delphi 7.0, встраивается в среду программирования и может быть использован при разработке программ аналогично классу TLabel. Применение данного программного средства обеспечит при создании прикладных специализированных программ в среде Borland Delphi более естественный интерфейс для предметной области пользователей.
Внешний вид надписи, созданной с помощью данного компонента, приведен на рисунке. Актуальность его использования обосновывать не буду - представьте, например, формулу, приведенную на рисунке, сделанную обычным компонентом TLabel... До разработки был проведен поиск подобных наработок. Очень, надо сказать, серьезный поиск. Не безрезультативный, но того что надо - не нашлось. Так что данная работа начиналась с нуля, предков и аналогов, соответственно, не имеет.
Начало работы над компонентом - студент гр. ЭП-001 Коломийец К.И., 2004. Архив с исходным кодом данного варианта - скачать... Завершение - студент гр. АТ-051 Боряков А.Ю., 2008. Архив с исходным кодом конечного варианта - скачать... Лично мной осуществлялось не только общее руководство, но и непосредственное участие.
На данный момент функциональность разработанного компонента вполне удовлетворительная. Но если "доводить его до ума", то необходимо решить, на мой взгляд, следующие задачи:
© Романов А.В. "Компонент для ввода численных данных" / М.: Национальный информационный фонд неопубликованных документов ФГУП "Всероссийский научно-технический информационный центр". 2009. № 50200900419 от 29.04.2009.
Компонент позволяет реализовать корректный ввод числовых данных с возможностью параметрирования формата вводимого числа (только положительные или только целые числа, ввод чисел совместно с символом экспоненты "Е", корректный ввод десятичного разделителя согласно настройке операционной системы) и контроля допустимого диапазона ввода. Основное назначение компонента - исключить ошибки при вводе численных данных в прикладных специализированных программах. Компонент разработан на основе стандартного класса TEdit компонентов интегрированной среды разработки прикладного программного обеспечения Borland Delphi 7.0, встраивается в среду программирования и может быть использован при разработке программ аналогично классу TEdit. Применение данного программного средства обеспечит при создании прикладных специализированных программ в среде Borland Delphi корректный ввод числовых данных с учетом особенностей предметной области пользователя.
Ввод численных данных в расчетных программах отнюдь не редкость. Проверка корректности введенного пользователем значения, попадание его в допустимый диапазон - актуальные задачи разработчиков программного обеспечения. Наилучший выход, на мой взгляд, просто не позволять пользователю ввести неверное значение (насколько это возможно, конечно). Данный компонент решает эту задачу.
Внешний вид поля ввода приведен на рисунке, за основу при разработке данного ПО был использован пример из [_1], также использовалась книга [_2]. Работа велась мной лично, но студенты участвовали в тестировании. Начало работы над компонентом - апрель 2003, завершение, надеюсь (), август 2011.
Модификация компонента в версии 1.01. - При эксплуатации компонента выявился ряд глюков, в частности, была возможна ошибка переполнения, когда количество цифр превосходило формат типа данных, а также компонент можно было обмануть, вставив из Clipboard-а заведомо неверное (и даже нечисловое) значение. Эти проблемы были решены, архив с исходным кодом версии 1.01 - скачать...
Модификация компонента в версии 1.02. - Предыдущая модификация, видимо, стала причиной еще одного глюка - пользователь не может ввести чистый знак "-", что является естественным действием при вводе отрицательных чисел. Данная ошибка исправлена. Также в данную версию включен файл помощи в формате CHM, методика работы с ним позаимствована из [_3], использован программный модуль HtmlHelp.pas [_4]. Архив с исходным кодом версии 1.02 - скачать...
Дальнейшее совершенствование компонента, естественно, возможно. Например, можно взять в качестве родительского класса TCustomEdit и вынести свойство Text из Инспектора объектов... Но функциональность компонента на данный момент более чем удовлетворительная, и едва ли стоит заниматься подобной ерундой в то время как есть множество более важных задач. !
Здесь что-то должно быть?..
Здесь что-то должно быть?..
_1. Культин Н.Б. Программирование на Object Pascal в Delphi 5. - СПб: БВХ - Санкт-Петербург. 2000. 464 с.
_2. Фаронова В.В. Искусство создания компонентов Delphi. Библиотека программиста. - СПб.: Питер. 2005. 463 с.
_3. Петров В.Н. Информационные системы. - СПб.: Питер. 2002. 688 с.
_4. ftp://delphi-jedi.org/api/HtmlHelp.zip
обновление 12.08.2011