Разработка прикладного программного обеспечения для многоканального измерительного прибора Ш9327 - Программирование, компьютеры и кибернетика дипломная работа

Разработка прикладного программного обеспечения для многоканального измерительного прибора Ш9327 - Программирование, компьютеры и кибернетика дипломная работа




































Главная

Программирование, компьютеры и кибернетика
Разработка прикладного программного обеспечения для многоканального измерительного прибора Ш9327

Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования Российской Федерации
Российский государственный профессионально-педагогический университет
Кафедра микропроцессорной управляющей вычислительной техники
Пояснительная записка к дипломной работе
Разработка прикладного программного обеспечения для многоканального измерительного прибора Ш9327
программирование многоканальный измерительный прибор
Дипломная работа содержит 105 страниц машинописного текста, 12 таблиц, 40 рисунков, список из 13 использованных источников, 2 приложения (7 страниц).
Ключевые слова: Программное обеспечение, система управления, технологический процесс, программирование, универсальный язык программирования, С++ Builder, интерфейс, м форма.
В работе проведен анализ современных инструментов разработки программного обеспечения для систем управления технологическими процессами.
Разработано прикладное программное обеспечение для управления многоканальным измерительным преобразователем Ш9327.
Программа должна соответствовать следующим исходным требованиям:
- работа под управлением ОС Windows, удобный пользовательский интерфейс, хорошее оконное и графическое решение, наглядность представления данных;
- эффективный контроль технологического процесса;
- обеспечение управления и получения информации с многоканальных измерительных преобразователей Ш9327, разработанных фирмой “Сенсорика”;
- производить текущую диагностику оборудования для выявления неисправностей и отклонений в технологическом процессе;
- осуществлять анализ показаний приборов на предмет отклонений в технологическом процессе;
- заносить в протокол и сигнализировать оператору о неполадках в работе оборудования и отклонениях в технологическом процессе, а также фиксировать все действия, произведенные оператором (вести протокол команд оператора).
Все вышеперечисленные требования были взяты за основу при разработке программного обеспечения для СУТП.
Современные языки программирования, такие как Borland C++ Builder 5.0, являясь универсальными средствами разработки, составляют конкуренцию SCADA-системам.
Рассмотрим SCADA-системы в сравнении с Borland C++ Builder 5.0.
1. SCADA-системы при разработке выгодны большим числом заготовок, компонентов, которые с высокой степенью вероятности могут быть использованы в любой СУ. Но при этом, работе требуется разработка конкретных мнемосхем оборудования - ни в одной SCADA-системе нет заготовок для специализированных элементов схемы. Их придется разрабатывать вручную, возможно на том же Builder 5.0. Отображение неисправностей на мнемосхемах предусмотрено не во всех SCADA-системах.
В отличие от SCADA-систем, C++ Builder не имеет большого набора компонентов и заготовок, которые сразу же можно применить для построения СУ, однако при этом есть возможность создавать только те компоненты и с теми характеристиками, которые потребуются для конкретной системы управления. Размещение компонентов на формах для отображения выполняется в C++ Builder аналогичным образом, как и в большинстве SCADA-систем. Отображение неисправностей на мнемосхемах формируется разработчиком так, как этого требует техническое задание на СУ.
Таким образом, трудоемкость разработки мнемосхем и экранов отображения примерно одинакова как в SCADA-системе, так и в Builder.
2. SCADA-системы уже имеют встроенные пакеты, позволяющие организовывать регистрацию диагностической информации и работу с ней. При этом для каждой системы управления вид диагностической информации, реакция на нее, необходимость регистрации могут быть различны. Поэтому в готовом виде модули по работе с диагностикой SCADA-систем, как правило, не годятся к использованию и требуют доработок.
В С++ Builder 5.0 специальных средств для работы с диагностикой не предусмотрено. Предусмотрены универсальные средства для работы с базами данных (БД), которые позволяют организовать БД любой структуры, в которых можно хранить большие объемы информации и работать с этой информацией на любых разработанных для этой цели интерфейсах. Критерии для занесения информации в диагностику также формируются разработчиком под конкретную СУ.
Таким образом, в SCADA-системах, как правило, потребуется доработка или адаптация пакета, отвечающего за формирование, регистрацию и просмотр диагностики, а в Builder потребуется разработка модуля, отвечающего за формирование, регистрацию и просмотр диагностики.
3. В SCADA-системах для получения информации с контроллеров, устройств, приборов требуется, чтобы драйверы к ним были выполнены в определенном формате, что далеко не всегда имеет место. Наиболее часто приборы, имеющие приемлемое соотношение цена/качество, не имеют драйверов, подходящих для использования напрямую в SCADA-системе. Кроме того, формат обменов, подходящий для SCADA-систем, отличается медлительностью.
В Builder 5.0 легко интегрировать любой драйвер для любого устройства и также легко разработать драйвер для любого прибора, контроллера и устройства.
Таким образом, в SCADA-системах могут возникнуть сложности и существенные разработки при стыковке с приборами, контроллерами и устройствами, а в С++ Builder 5.0 таких сложностей не будет.
4. В SCADA-системах для организации работы ядра разрабатываемой программы используется язык программирования Microsoft Visual Basic (как правило). Этот язык имеет достаточно бедные возможности в плане программирования, и в процессе создания программы возможно потребуется из-за этого интегрировать в нее модули, написанные на других языках. А это в целом понижает надежность и устойчивость системы.
В С++ Builder 5.0 возможности программирования практически неограниченны.
Таким образом, для организации внутреннего ядра программы Builder выгоден, больше чем SCADA-система.
5. В процессе эксплуатации, если возникает необходимость изменения исходного проекта, то в SCADA-системе отдельные коррекции - по форме отображения результатов, или сортировке данных - делать намного проще, чем в проекте, выполненном на Builder (возможно, даже не потребуется привлечение разработчиков). Но, если возникает необходимость сделать принципиальные коррекции по изменению количества или сути характеристик технологических объектов, то трудоемкость изменений примерно сопоставима как в Builder , так и в SCADA, и эти коррекции требуют привлечения специалистов, выполнявших разработку проекта.
Отметим, что в системах, где высока ответственность, любые коррекции так или иначе должны делаться только разработчиком. С этой точки зрения трудоемкость коррекции практически одинакова и в случае использования SCADA, и в случае использования Builder.
Таким образом, выполнение коррекции сопоставимо по времени и трудоемкости как в SCADA-системах, так и в Builder.
6. Стоимость SCADA-систем весьма высока (порядка 10000$-20000$) и зависит от количества точек съема информации, количества приборов и компьютеров, задействованных в СУ.
При этом степень отработанности SCADA-системы зависит от предшествующего опыта практической реализации систем управления на определенное максимальное количество точек съема информации. Например, если с помощью конкретной SCADA-системы разрабатывались СУ с максимальным количеством точек не более 500-1000 штук и, соответственно, разработчики SCADA-системы устранили все выявленные ошибки, переход на проектирование СУ с 2000-5000 и более точек съема информации может вызвать новые вопросы к разработчикам SCADA-системы.
Таким образом, для проектируемых СУ с высокой степенью ответственности (под конкретные цели и сравнительно небольшим бюджетом), которые будут поддерживаться, обслуживаться и дорабатываться внешним разработчиком, больше подходит пакет программного обеспечения Builder, учитывая, что стоимость пакета Builder порядка 1000$-3000$ (в зависимости от комплекта поставки) и не зависит от количества компьютеров, на которые установлено данное программное обеспечение, а трудоемкость разработки мнемосхем и экранов отображения примерно одинакова как в SCADA-системе, так и в Builder.
1. Использование SCADA-систем при разработке программного обеспечения СУ требует больших финансовых затрат, связанных с ее приобретением, которые в 4-10 раз выше, чем при использовании универсальных языков программирования.
2. Трудоемкость разработки проектов в SCADA-системе и в универсальных языках программирования примерно одинакова.
3. С точки зрения экономической эффективности и трудозатрат, целесообразно для разработки программного обеспечения СУ использовать пакет программного обеспечения С++ Builder 5.0, как универсальный язык программирования.
Рис. 2.1. Структурная схема разработанного ПО
1. Текущая диагностика оборудования. Программа постоянно диагностирует оборудование и при обнаружении неполадки панель начинает сигнализировать (загорается красным цветом);
2. Текущая диагностика отклонений в техпроцессе. При обнаружении существенного отклонения панель начинает гореть красным цветом;
3. Кнопка дает доступ к текущей таблице и архиву неисправностей. При обнаружении неисправности программа сигнализирует об этом и заносит неисправность в протокол (текущую таблицу неисправностей). При завершении работы текущая таблица архивируется, доступ к ней можно получить с помощью кнопки Работа с архивами интерфейса Архив диагностики оборудования;
4. Кнопка дает доступ к текущей таблице и архиву отклонений в техпроцессе. При обнаружении отклонения программа сигнализирует об этом и заносит неисправность в протокол (текущую таблица отклонений). При завершении работы текущая таблица архивируется, доступ к ней можно получить с помощью кнопки Работа с архивами интерфейса Архив отклонений в работе тепловых зон;
5. Кнопка дает возможность просмотреть текущую таблицу и архив команд оператора;
6. Открывает интерфейс Техническое состояние приборов;
7. Открывает интерфейс Показания и управление;
8. Открывает интерфейс Состояние релейных выходов);
10. В этой панели выводится информация о текущем состоянии АСУ (сообщение об ошибках);
11. В этой панели выводится информация о текущем состоянии ЭТ (сообщение об отклонениях в техпроцессе);
12. В этой панели отображается название текущей операции;
13. В этой панели отображается индикатор, который показывает процент выполнения текущей операции.
Рис. 2.3. Форма Диагностика оборудования
Данная форма недоступна для вызова пользователя до тех пор, пока программа не получит от какого-либо прибора сообщения о неисправности. Если это произойдет, то оператор будет предупрежден цветовым сигналом на кнопке АСУ (см. рис. 2.2), а нажатие на этой кнопке даст доступ к интерфейсу Диагностика оборудования (см. рис. 2.3), где отобразятся данные об оборудовании, характере неисправности, дате и времени.
2. Текущая диагностика отклонений в технологическом процессе. (Рис. 2.4).
Рис. 2.4. Форма Отклонения в работе
Данная форма недоступна для вызова пользователя до тех пор, пока программа не обнаружит значительного отклонения в технологическом процессе. Если это произойдет, то оператор будет предупрежден цветовым сигналом на кнопке ЭТ (см. рис. 2.2), а нажатие на этой кнопке даст доступ к интерфейсу Отклонения в работе (см. рис. 2.4), где отобразятся данные об измерительном входе, характере отклонения в работе, дате и времени.
Интерфейсы текущей диагностики позволяют своевременно предупредить оператора о неисправностях и отклонениях контролируемых параметров.
Рис. 2.5. Форма Архив диагностики оборудования
Все неисправности, зафиксированные с момента последнего запуска программы, заносятся в текущую таблицу неисправностей. При завершении работы программы, данные из текущей таблицы заносятся в архив неисправностей, доступ к которому можно получить с помощью нажатия кнопки Работа с архивами. (См. рис. 2.5).
В этой форме представлена текущая таблица и архив отклонений в технологическом процессе. (Рис. 2.6).
Рис. 2.6. Форма Архив отклонений в работе тепловых зон
Все отклонения, зафиксированные с момента последнего запуска программы, заносятся в текущую таблицу отклонений в работе. При завершении работы программы, данные из текущей таблицы заносятся в архив, доступ к которому можно получить с помощью нажатия кнопки Работа с архивами. (См. рис. 2.6).
В этой форме представлена текущая таблица и архив команд оператора. (Рис. 2.7).
Рис. 2.7. Форма Архив команд оператора
В текущую таблицу заносятся все команды оператора, произведенные с момента последнего запуска программы. При завершении работы программы, данные из текущей таблицы заносятся в архив, доступ к которому можно получить с помощью нажатия кнопки Работа с архивами. (См. рис. 2.7).
С помощью интерфейсов работы с протоколами и архивами можно получать доступ как к текущей информации о технологическом процессе, так и к архивам, хранящим в себе информацию о работе в течении предыдущих запусков программы.
Рис. 2.8. Интерфейс Техническое состояние приборов
2. Интерфейс Показания и управление
С помощью этого интерфейса оператор управляет приборами и оценивает показания, поступающие с приборов. На рис. 2.9 обозначены:
1. Позволяет изменить состояние выбранного прибора (Включено/Выключено);
2. Позволяет изменить уставки для каждой точки съема;
3. Позволяет построить график изменения параметра (задается период регистрации параметра). Возможен выбор использования данных для построения графика, текущие или архивные;
Рис. 2.9. Интерфейс Показания и управление
3. Интерфейс Состояние релейных выходов
С помощью этого интерфейса оператор может выбрать любой прибор из используемых в технологическом процессе и поменять режим управления и состояние его релейных выходов. (Рис. 2.10).
Рис. 2.10. Интерфейс Состояние релейных выходов
Рис. 3.1. Среда разработки C++ Builder
Компоненты разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью (например, обеспечивают доступ к данным, вызывают стандартные диалоги Windows и др.), рис. 3.2.
Для добавления компонента в форму можно выбрать мышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать, менять размеры и другие характеристики.
Рис. 3.2. Пример использования видимых и невидимых компонентов
Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.
Если выбрать компонент из палитры и добавить его к форме, инспектор объектов автоматически покажет свойства и события, которые могут быть использованы с этим компонентом. В верхней части инспектора объектов имеется выпадающий список, позволяющий выбирать нужный объект из имеющихся на форме, рис. 3.3.
Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются на странице свойств (Properties). Инспектор объектов отображает опубликованные (published) свойства компонентов. Помимо published-свойств, компоненты могут и чаще всего имеют общие (public), опубликованные свойства, которые доступны только во время выполнения приложения. Инспектор объектов используется для установки свойств во время проектирования. Список свойств располагается на странице свойств инспектора объектов. Можно определить свойства во время проектирования или написать код для видоизменения свойств компонента во время выполнения приложения.
При определении свойств компонента во время проектирования нужно выбрать компонент на форме, открыть страницу свойств в инспекторе объектов, выбрать определяемое свойство и изменить его с помощью редактора свойств (это может быть простое поле для ввода текста или числа, выпадающий список, раскрывающийся список, диалоговая панель и т.д.).
Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности для Windows, предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или и ого события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.
Для того чтобы добавить обработчик событий, нужно выбрать на форме с помощью мыши компонент, которому необходим обработчик событий, затем открыть страницу событий инспектора объектов и дважды щелкнуть левой клавишей мыши на колонке значений рядом с событием, чтобы заставить C++ Builder сгенерировать прототип обработчика событий и показать его в редакторе кода. При этом автоматически генерируется текст пустой функции, и редактор открывается в том месте, где следует вводить код. Курсор позиционируется внутри операторных скобок {...}. Далее нужно ввести код, который должен выполняться при наступлении события. Обработчик событий может иметь параметры, которые указываются после имени функции в круглых скобках. Рис. 3.4.
Рис. 3.4. Прототип обработчика событий.
Метод является функцией, которая связана с компонентом, и которая объявляется как часть объекта. Создавая обработчики событий, можно вызывать методы, используя следующую нотацию: ->, например:
Отметим, что при создании формы связанные с ней модуль и заголовочный файл с расширением *.h генерируются обязательно, тогда как при создании нового модуля он не обязан быть связан с формой (например, если в нем содержатся процедуры расчетов). Имена формы и модуля можно изменить, причем желательно сделать это сразу после создания, пока на них не появилось много ссылок в других формах и модулях.
Важным элементом среды разработки C++ Builder является контекстное меню, появляющееся при нажатии на правую клавишу мыши и предлагающее быстрый доступ к наиболее часто используемым командам.
Первым шагом в разработке приложения C++ Builder является создание проекта. Файлы проекта содержат сгенерированный автоматически исходный текст, который становится частью приложения, когда оно скомпилировано и подготовлено к выполнению. Чтобы создать новый проект, нужно выбрать пункт меню File/New Application.
C++ Builder создает файл проекта с именем по умолчанию Project1.cpp, а также make-файл с именем по умолчанию Project1.mak. При внесении изменений в проект, таких, как добавление новой формы, C++ Builder обновляет файл проекта. Рис. 3.5.
Проект или приложение обычно имеют несколько форм. Добавление формы к проекту создает следующие дополнительные файлы:
файл формы с расширением *.dfm, содержащий информацию о ресурсах окон для конструирования формы;
файл модуля с расширением *.cpp, содержащий код на C++;
заголовочный файл с расширением *.h, содержащий описание класса формы.
Когда вы добавляете новую форму, файл проекта автоматически обновляется.
Для того чтобы добавить одну или более форм к проекту, выберите пункт меню File/New Form. Появится пустая форма, которая будет добавлена к проекту. Можно воспользоваться пунктом меню File/New, выбрать страницу Forms и выбрать подходящий шаблон из репозитория объектов. Рис. 3.6.
Для того чтобы просто откомпилировать текущий проект, из меню Compile нужно выбрать пункт меню Compile. Для того, чтобы откомпилировать проект и создать исполняемый файл для текущего проекта, из меню Run нужно выбрать пункт меню Run. Компоновка проекта является инкрементной (перекомпилируются только изменившиеся модули).
Если при выполнении приложения возникает ошибка времени выполнения, C++ Builder делает паузу в выполнении программы и показывает редактор кода с курсором, установленным на операторе, являющемся источником ошибки. Прежде чем делать необходимую коррекцию, следует перезапустить приложение, выбирая пункт меню Run из контекстного меню или из меню Run, закрыть приложение и лишь затем вносить изменения в проект. В этом случае уменьшится вероятность потери ресурсов Windows.
Теперь попробуем создать простейшее приложение, позволяющее вводить текст в редактируемое поле и добавлять этот текст к списку при нажатии мышью на кнопку.
Шаг 1. Создание формы, размещение объектов на форме.
Выберем пункт меню File/New Application для создания проекта и сохраним его главную форму под именем samp1.cpp, а сам проект под именем samp.mak. Поместим на форму компоненты Button, Edit и ListBox со страницы Standard палитры компонент. Рис. 3.7.
Рис. 3.7. Размещение компонентов на форме
После этого выберем на форме компонент Edit и удалим текущее значение свойства Text. Затем установим свойство Caption для Button1 равным "Добавить".
Шаг 2. Написание обработчика события для объекта Button.
Чтобы добавить обработчик события OnClick для кнопки Добавить, нужно выбрать эту кнопку на форме, открыть страницу событий в инспекторе объектов и дважды щелкнуть мышью на колонке справа от события OnClick. В соответствующей строке ввода появится имя функции. C++ Builder сгенерирует прототип обработчика событий и покажет его в редакторе кода. После этого следует ввести следующий код в операторные скобки { ... } тела функции:
void __fastcall TForm1::Button1Click(TObject *Sender) { if (!(Edit1->Text == "")) { ListBox1->Items->Add(Edit1->Text); Edit1->Text = "" ; } }
Шаг 3. Компиляция и запуск приложения. Проверка работоспособности программы.
Для компиляции приложения в меню Run выберем пункт Run. Теперь можно что-нибудь ввести в редактируемое поле, нажать мышью на кнопку Добавить и убедиться, что вводимые строки добавляются к списку. Рис. 3.8.
Рис. 3.8. Так выглядит готовое приложение.
Шаг 4. Модификация приложения путем добавления кнопок Добавить и Удалить и написание соответствующего им кода.
Теперь модифицируем приложение, добавив кнопки Удалить и Выход. Для этого добавим еще две кнопки, изменим их свойство Caption и создадим обработчики событий, связанных с нажатием на эти кнопки. Рис. 3.9.
Рис. 3.9. Модифицированное приложение
void __fastcall TForm1::Button2Click(TObject *Sender) { if (!(ListBox1->ItemIndex == -1)) ListBox1->Items->Delete(ListBox1->ItemIndex); }
Шаг 5. Сохранение, компиляция и запуск готового приложения.
Сохраним и скомпилируем приложение, а затем протестируем его.
Итак, мы познакомились со средой разработки Borland C++ Builder и создали простое приложение. В следующих уроках будут описаны приемы манипуляции компонентами на форме и более подробно рассмотрены особенности поведения различных компонентов в приложении.
В этом уроке рассматриваются приемы манипуляции компонентами на форме и рассматривается пример применения некоторых наиболее часто используемых компонентов. Также будет создано сложное приложение с использованием основных компонентов среды Borland C++ Builder.
Выбор компонентов для групповых операций
Для эффективной разработки пользовательских интерфейсов приложений C++ Builder нередко возникает необходимость в манипулировании компонентами на формах. Большинство операций для манипулирования компонентами находятся в меню Edit. К различным опциям этого меню следует обращаться после того, как на форме вы ран один или несколько компонентов, свойства которых требуется изменить.
Выбрать один компонент можно следующими способами:
- выбрав с помощью мыши компонент на форме;
- выбрав имя компонента в селекторе объектов;
- переходом к компоненту на форме, нажимая клавишу Tab.
Выбрать несколько компонентов можно следующими способами:
- удерживая нажатой клавишу Shift, щелкнуть мышью на каждом компоненте;
- нажать левую клавишу мыши и окружить нужные компоненты прямоугольным контуром.
Установка разделяемых свойств компонентов
Большинство визуальных компонентов имеют общие свойства, (например, Visible, Width, Left). Для установки одинаковых значений общих свойств для нескольких компонентов необходимо выполнить следующие действия:
Выбрать несколько настраиваемых компонентов (Рис. 3.10). При этом страница свойств инспектора объектов будет отображать только те свойства, которые имеются у всех выбранных компонентов;
Рис. 3.10. Выбор нескольких компонентов для групповых операций
Установить значения свойств, общих для выделенных компонентов. Рис. 3.12 показывает результаты изменения свойства Font и Left . Все выбранные компоненты приобрели одинаковые значения этих свойств.
Рис. 3.12. Установка разделяемых свойств компонентов
Изменение размера компонента можно проводить как при добавлении его на форму, так и после этого.
При добавлении компонента следует выбрать его на палитре компонентов. Далее нужно поместить курсор мыши на форму, нажать левую клавишу и перемещать мышь, в результате чего на форме появится прямоугольник, изображающий границы будущего компонента. Когда прямоугольник приобретет необходимые размеры, нужно отпустить кнопку мыши (рис. 3.13).
Рис. 3.13. Изменение размера компонента при его добавлении на форму
Если перевести курсор мыши на один из появившихся вокруг компонента маленьких черных квадратиков, курсор мыши изменяет форму. Перемещая этот курсор и вместе с ним границу компонента, можно изменять его размеры.
Для изменения размеров нескольких компонентов следует выбрать их одним из описанных выше способов. Далее нужно выбрать пункт меню Edit/Size. Появится диалоговое окно Size (рис. 3.14). Выберите опции размера. Для точной установки размера в пикселах можно ввести числа в поля Width и Height. Далее нужно нажать кнопку OK.
Рис. 3.14. Установка свойств компонентов c использованием меню EDIT/SIZE
Можно добавить несколько копий компонента одного типа, выбирая компонент из палитры при нажатой клавише Shift. В этом случае вокруг компонента появляется прямоугольник, окружающий этот компонент. После этого каждый щелчок мышью на форме приводит к появлению на ней копии компонента. Закончив режим многократного копирования, следует щелкнуть мышью на инструменте выбора курсора (первая кнопка на палитре компонентов с изображением стрелки).
Для выравнивания компонентов на форме можно использовать следующие комбинации клавиш (Табл. 3.1).
Таблица 3.1 Комбинации клавиш, используемые для выравнивания компонентов
Изменяет размер компонента на один пиксел в направлении выбранной стрелки
Перемещает компонент на одну единицу сетки в направлении выбранной стрелки
Перемещает компонент на один пиксел в направлении выбранной стрелки
Можно также выровнять компоненты, используя пункт меню View/Alignment Palette. Для этого нужно:
выбрать компоненты для выравнивания;
выбрать пункт меню View/Alignment Palette;
выбрать нужную кнопку (см. рис. 3.15).
Рис. 3.15. Выравнивание компонентов с помощью View/Alignment Palette
Можно выровнять компоненты, используя пункт меню Edit/Align. Для этого нужно:
1. выбрать компоненты для выравнивания;
2. выбрать пункт меню Edit/Align. Появится диалоговое окно Alignment;
3. выбрать нужную опцию и нажать на кнопку OK (рис 3.16).
Рис. 3.16. Выравнивание компонентов с помощью меню Edit/Align
Можно изменить условия выравнивания компонент, используя пункт меню Options/Environment (рис. 3.17). Для этого нужно:
1. Выбрать пункт меню Options/Environment. Диалоговое окно Environment появится открытым на странице Preferences.
2. В группе Form designer можно выбрать следующие опции:
3. Display grid - сделать сетку из точек на форме видимой для выравниваемых компонентов;
4. Snap to grid - заставить левые и верхние стороны компонентов расположиться а линиях сетки.
5. Для того, чтобы изменить расстояние между узлами сетки, нужно ввести новые значения вместо имеющихся. Значение по умолчанию -- 8 пикселей по оси X (по горизонтали) и по оси Y (по вертикали).
Рис. 3.17. Выравнивание компонентов с помощью страницы Preferences диалоговой панели Environment
Создание сложного приложения на примере текстового редактора
Шаг 1. Создание главной формы и расположение на ней необходимых компонентов.
Попробуем использовать полученные знания для создания текстового редактора, с помощью которого можно было бы создавать новые файлы, открывать имеющиеся, редактировать и сохранять их, а также использовать буфер обмена для работы с фрагментами текста. Для этого создадим новый проект, основанный на пустой форме, и сохраним ее под именем Edit1.cpp.
На пустой форме разместим компонент TPanel - будущую инструментальную панель нашего редактора. Свойству Align полученного компонента Panel1 присвоим значение alTop, а свойству Caption - пустую строку.
Далее разместим на форме компонент TMemo и присвоим его свойству Align значение alClient, свойству ScrollBars - значение ssVertical, а свойству Lines - пустой массив строк (редактор свойств, являющихся строковыми массивами, как правило, представляет собой обычный текстовый редактор).
Вспомним о том, что наш будущий текстовый редактор должен открывать и сохранять файлы. Для этой цели воспользуемся стандартными диалогами Windows. Для этого поместим на форму два диалога со страницы Dialogs: TOpenDialog и TSaveDialog. Изменим свойство Filter созданного только что компонента OpenDialog1, внеся две строки в диалоговую панель Filter Editor и нажав кнопку OK (рис. 3.18).
Рис. 3.18. Установка свойства Filter компонента OpenDialog1
Теперь можно взять в буфер обмена строку, образовавшуюся в колонке значений напротив свойства Filter, выбрать компонент SaveDialog1 и вставить содержимое буфера обмена в строку напротив свойства Filter. Этим самым мы установим такое же значение свойства Filter для второго диалога. При желании можно изменить заголовки диалоговых панелей (свойство Caption) и другие параметры (свойство Options).
Обратите внимание на то, что языковая версия библиотеки может быть в общем случае как русской, так и английской, так как это ресурс Windows, а не вашего п
Разработка прикладного программного обеспечения для многоканального измерительного прибора Ш9327 дипломная работа. Программирование, компьютеры и кибернетика.
Краткое Сочинение Повествование
Доклад по теме Что, если
Реферат: Проблема споживання людством благ цивілізації
Реферат На Тему Александр 2
Лабораторная Работа 7 Класс Условия Равновесия
Эссе Форма Государства Российская Федерация
Благодарность Книгам Сочинение Миниатюра
Реферат: Effects Of Tv On Children 2 Essay
Онлайн Контрольная Работа По Математике 6 Класс
Дипломная работа по теме Разработка эффективной структуры управления ООО 'Лика' в условиях стратегического развития бизнеса
Текстовый редактор MS WORD
Курсовая Работа На Тему Налог На Игорный Бизнес
Реферат: Gay Marriages Essay Research Paper When you
Эссе Пиво Объем
Реферат: Электрические цепи с бинарными потенциалами
Контрольная Работа Основные Характеристики Научного Стиля
Реферат: Герцогство Бургундия
Курсовая работа: Выявление закономерностей развития скоростно-силовых качеств в возрастном аспекте
Дипломная работа по теме Экономическая политика предприятия на примере компании Apple
Реферат по теме Рынок ГКО Российской Федерации
Инновационные стратегии как фактор стабильного развития промышленных предприятий - Менеджмент и трудовые отношения курсовая работа
Товароведная характеристика и экспертиза качества молока с массовой долей жирности 3,5%, реализуемого в супермаркете - Маркетинг, реклама и торговля курсовая работа
Частичные съемные протезы - Медицина презентация


Report Page