Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_IGME.doc
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
3.64 Mб
Скачать
  1. Понятие события в объектно-ориентированной парадигме программирования: природа событий, виды событий, маршрутизация событий. Модификация и обработка событий. Реакция на события.

Под событием в языке программирования обычно понимается способ внедрения того или иного фрагмента в программный код с целью изменения поведения программы.

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

Природа событий

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

Виды событий

Существуют 4 основных класса событий:

  • события от мыши

  • события от клавиатуры

  • сообщения

  • пустые события.

События от мыши:

  • событие evMouseDown возникает как отклик на нажатие кнопки мыши;

  • когда кнопка отпускается, возникает событие evMouseUp;

  • перемещение указателя мыши порождает событие evMouseMove;

  • если кнопка мыши удерживается в нажатом состоянии генерируется событие evMouseAuto.

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

События от клавиатуры

В этом классе событий имеется единственное событие связанное с нажатием на клавишу. В этом случае программе передаётся расширенный код клавиши, который можно интерпретировать как совокупность двух байт: CharCode и ScanCode. При нажатии на алфавитно-цифровую клавишу поле CharCode содержит соответствующий ASCII-символ, при нажатии на функциональную клавишу поле CharCode содержит символ #0, а поле ScanCode - код сканирования нажатой клавиши. Для облегчения идентификации нажатой клавиши можно использовать константы kbXXXX.

Сообщения бывают трех видов:

  • команды

  • общие сообщения

  • пользовательские сообщения.

Большинство событий преобразуется в команды. С каждым полем строки статуса обычно связана какая-то команда, поэтому обработчик очистит пришедшее к нему сообщение от мыши и создаст новое сообщение, содержащее выбранную команду. Общие и пользовательские сообщения не являются исключением и обычно также преобразуются в команды.

Пустые события

Пустым событие становится после его обработки каким-либо видимым элементом. Когда событие обработано, видимый элемент вызывает метод очистки события, с помощью которого в поле устанавливается значение равное 0. Объекты должны игнорировать это событие, поскольку оно уже обработано каким-то видимым элементом.

Маршрутизация событий (на примере среды Turbo Vision)

Любая программа, работающая в среде Turbo Vision, является прямым или косвенным (через TApplicatiori) потомком TProgram и основана на обращении к трем главным методам этого объекта: Init, Run и Done. Процесс получения и обработки событий инициируется методом TProgram.Run, который для этого обращается к методу TGroup.Execute.

Метод GetEvent наследуется всеми видимыми элементами и является основным источником событий. Этот метод вначале проверяет, не подготовил ли событие метод PutEvent и, если это так, возвращает его. Затем GetEvent проверяет клавиатуру и мышь. Если какое-то из этих устройств изменило свое состояние, метод формирует и возвращает соответствующее событие. Если изменения не произошло, GetEvent обращается к методу TProgram.Idle, чтобы запустить «фоновую» задачу.

Модификация и обработка событий

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

Необходимость в новых классах событий может возникнуть в том случае, когда программа работает с нестандартными источниками информации. Если, например, надо работать с последовательным портом, то возможно, определить класс событий evSerial, используя для его идентификации один или несколько старших разрядов поля Event.What. Технически получить информацию из нового источника и сделать ее событием можно путем перекрытия метода TProgram.GetEvent.

Реакция на событие:

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

Проектирование ИС (76-92)

  1. Понятие «информационная система» (ИС). Основные направления развития ИС. Эффективность ИС. Структура программного обеспечения ИС. Структура приложений в ИС. Структура хранения информации в ИС. Классификация информационных систем (по различным критериям: по типу хранимой информации, по степени автоматизации информационных процессов, по характеру обработки, по характеру использования выходной информации, в зависимости от сферы применения).

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

Эффективность ИС.

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

Структура программного обеспечения (ПО) ИС.

ПО ИС состоит из нескольких взаимосвязанных частей, каждая из которых выполняет определенную функцию и определяет в системе заданное свойство. Выделяются следующие блоки:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]