Научно-исследовательская лаборатория систем ЧПУ
Научно-исследовательская лаборатория систем ЧПУ

Поиск по сайту:
 

Расписание курсов "Программирование SINUMERIK 810D/840D/840Di"



Классы и библиотеки C++

Раздел посвящен C++ библиотекам классов, разработанным в лаборатории систем ЧПУ и использованию их при создании интерфейсов оператора систем управления. 


Утилита для тестирования шаблонов регулярных выражений

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


Реализация поиска с использованием "wildcard" символов на базе регулярных выражений

Нередки случаи, когда в пользовательском интерфейсе необходимо реализовать функциональность поиска. Хороший поиск это быстрый поиск, предоставляющий гибкость работы с шаблонами. Шаблоны не предполагают точное задание поискового слова, можно обойтись его фрагментом или смежным выражением для поиска целой группы. Это весьма удобно, если слово которые вы ищете длиннее 5-7 символов.


Класс CFlexButton

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

Кнопка может быть в отмеченном, подсвеченном, нажатом или нормальном состоянии. При выводе метафайлов каждому состоянию кнопки соответствовует свой метафайл. В зависимости от стиля кнопка может быть обычной, checkable или fixed. Кнопка checkable при первом щелчке мыши нажимается, а при повторном щелчке мыши отжимается, поведение аналогично стандартному check box элементу. Поведение кнопки fixed похоже на поведение кнопки checkable, но отжать ее можно только вызовом метода класса. Класс написан с использованием библиотеки MFC и может использоваться только в MFC-проектах. 


Объемная кнопка CStyleButton

В данном документе описывается элемент управления кнопка CStyleButton объемного стиля. CStyleButton – полноценная объемная кнопка ОС Windows. Кнопка моделирует освещение цилиндрической поверхности под различными углами к горизонту. Выпуклость кнопки изменяется от нулевой, до полукруглой. Минимальная освещённость кнопки так же варьируется. Для работы с кнопкой необходимо использовать библиотеку NCViewPanel.dll.


Класс CPanel

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


Класс CScurryProgressCtrl

Класс CScurryProgressCtrl предназначен для расширения функциональности стандартного класса CProgressCtrl с целью получения прогресс-бара, изменяющего свое положение с течением времени.

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


Класс CIndicator

Класс CIndicator создает и отрисовывает индикатор в Windows приложениях. Индикатор может иметь несколько состояний, каждое состояние использует свою картинку в качестве фона и свою подпись.

Класс CIndicator предоставляет функциональные возможности по выбору стиля отображения индикатора (только текст, только картинка, текст и картинка), заданию выводимой надписи, загрузку фоновой картинки, установки цвета выводимой надписи, установки расстояния между индикаторами, отрисовки индикатора в окне.


Использование регулярных выражений для фильтрации ввода

Проблемма контроля симантики вводимого выражения решается на базе регулярных выражений. К сожалению, данный механизм не представлен как таковой в VC++ 6.0. Поэтому он был заимствован из шаблонных классов VC++ 7.0 (или VC++ 8.0). В результате, после сокращения и оптимизации этих шаблонов, получилось два класса для работы с регулярными выражениями.