в программе объявляется класс Panel,
}
Для создания дочернего окна-панели в программе объявляется класс Panel, производный от TWindow и включающий всего две функции - конструктор и замещающую функцию Paint(). В конструкторе класса устанавливается (с помощью структуры Attr) стиль окна - дочернее, видимое и без рамки, а также задаются его координаты и цвет фона. В функции Paint() в цикле из 1000 шагов вычисляются х- и у-координаты точек фигуры Лиссажу с учетом введенных пользователем значений отношения частот kf и сдвига фаз ph. Каждая точка рисуется в виде квадратика с размером сторон 2 пиксела. Число шагов в цикле и шаг изменения координат выбраны так, чтобы в графики состояли из достаточно большого числа точек. Рассмотренный алгоритм рисования двумерного графика использован по причине его наглядности и, строго говоря, не выдерживает никакой критики. По-настоящему следовало для каждой х-координаты с шагом в 1 пиксел вычислять соответствующую ей у-координату. Это устранило бы наложения и разрывы точек и позволило бы обойтись гораздо меньшим числом шагов в цикле, однако усложнило бы формулы для вычисления координат.
Главное окно приложения, представленное классом MyWindow, производным от TWindow, содержит в себе, помимо дочернего окна Panel, еще ряд управляющих элементов: горизонтальный ползунок, горизонтальную же линейку прокрутки и четыре статических элемента для вывода шкал и поясняющих надписей. Среди данных-членов класса MyWindow объявлены указатели на все эти элементы, а также две прикладные функции UpdateFrequency() и UpdatePhase(), служащие для съема данных с динамических элементов управления и модификации статических. Эти функции являются функциями отклика на сообщения, поступающие от элементов управления.
В таблицу откликов класса MyWindow включены всего два макроса EV_CHILD_NOYIFY_ALL_CODES, каждый из которых предназначен для вызова функции отклика для своего элемента управления при поступлении любого сообщения от этого (дочернего) элемента. Анализ приходящих сообщений, если он нужен, возлагается на функции отклика, при этом нотификационный код сообщения передается макросом в функцию отклика в качестве ее параметра.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий