- •В.В. Чуркин лабораторные работы по программированию
- •Содержание
- •Введение
- •Основное окно иср
- •Лабораторная работа 1
- •Задания
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды обработчиков событий и функций
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 2
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 3
- •Задание
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Заголовочный файл
- •Файл реализации
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 4
- •Введение
- •Алгоритмы шифрования и дешифрования
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Лабораторная работа 5
- •Введение
- •Алгоритмы
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Диспетчеризация действий на основе компонента ActionList
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Лабораторная работа 6
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания (стеки, очереди)
- •Лабораторная работа 7
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 8
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 9
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Библиографический список
Диспетчеризация действий на основе компонента ActionList
Перенесите на форму со страницы Стандарт компонент ActionList1. Перенесите также со страницы Win32 компонент ImageList1 и сошлитесь на него в свойстве Images компонента ActionList1.
Загрузите в компонент ImageList1 четыре изображения. Они загружаются в процессе проектирования с помощью редактора списков изображений. Окно редактора вызывается двойным щелчком на компоненте ImageList1 или щелчком правой кнопки мыши и выбором команды контекстного меню Редактор ImageList. В окне редактора Образы можно добавить в списки изображение (кнопка Добавить), удалить изображение из списка кнопкой Удалить, очистить весь список кнопкой Очистить. При добавлении изображения в список, которое начинается с нажатия кнопки Добавить, открывается окно открытия файлов изображений, в котором можно выбрать нужный файл. Множество изображений, размещаемых обычно на кнопках, содержится в папке …\Program Files\Common Files\Borland Shared\Images\Buttons. Следует помнить, что размер всех изображений в списке должен быть одинаковым. Как правило, это размер, используемый для пиктограмм в меню, списках, кнопках. При добавлении в список изображений для кнопок надо иметь в виду, что они часто содержат не одно, а два и более изображений. В этих случаях после выбора имени файла изображений при щелчке на кнопке Открыть задается вопрос: “Bitmap dimensions for … are greater then imagelist dimensions. Separate into … separate bitmaps?” (“Размерность изображения … больше размерности списка. Разделить на … отдельные изображения?”). Если ответить отрицательно, то все изображения уменьшатся в горизонтальном размере и лягут как одно изображение. Использовать его в дальнейшем будет невозможно. Поэтому на заданный вопрос надо ответить положительно. Тогда загружаемая битовая матрица автоматически разделится на отдельные изображения, а затем те из них, которые не нужны, удаляют. Каждое загруженное в список изображение получает индекс. Именно на эти индексы впоследствии ссылаются в соответствующих свойствах разделов меню, списков, кнопок и т.д., когда надо загрузить в них то или иное изображение. Чтобы изменить последовательность изображений в списке, перетаскивают изображение мышью на новое место. Итак, изображения добавляют из файлов clear, fontbold, tools, dooropen. Ненужные изображения в окне Образы выделяют щелчком мыши и удаляют, а когда все четыре изображения с соответствующими номерами будут находиться в окне, их загружают нажатием клавиши Ок.
Сделайте на компоненте ActionList1 двойной щелчок, чтобы попасть в Редактор Действий (окно Редактирование Form1->ActionList1), позволяющий вводить и упорядочивать действия. Колонка Категории: не имеет отношения к проектированию данного приложения. Щелчок правой кнопкой мыши или щелчок на маленькой кнопке со стрелкой вниз правее первой быстрой кнопки окна редактирования позволяет выбрать одну из команд: Новое действие или Новое стандартное действие. Первая из них относится к вводу нового действия любого типа. Будем пользоваться только командой Новое действие. Выберите эту команду четыре раза. В колонке Действия: появятся имена действий по умолчанию: Action1, Action2, Action3, Action4.
Выделите Action1. В Инспекторе Объектов указанным ниже свойствам объекта действия Action1 присвойте следующие значения: Caption – Новое, Hint – очистка, ImageIndex – 0, Name – ANew, ShortCut – Ctrl+A. Для Action2: Caption – Преобразование, Hint – преобразование, ImageIndex – 1, Name – AMod, ShortCut – Ctrl+B. Для Action3: Caption – Преобразование и вычисление, Hint – преобразование и вычисление, ImageIndex – 2, Name – ARun, ShortCut – Ctrl+C. И для Action4: Caption – Выход, Hint – выход, ImageIndex – 3, Name – AExit, ShortCut –Ctrl+D.
На странице событий Инспектора Объектов для каждого действия определено три события: OnExecute, OnUpdate и OnHint. Событие OnExecute возникает в момент, когда пользователь инициализировал действие, например, щелкнув на компоненте (разделе меню, кнопке), связанном с данным действием. Обработчик этого события должен содержать процедуру, реализующую данное действие. Событие OnUpdate периодически возникает в промежутках между действиями. Возникновение этих событий прекращается только во время реализации события или во время, когда пользователь ничего не делает и компьютер находится в состоянии ожидания действий. Обработчик события OnUpdate может содержать какие-то настройки, подготовку ожидаемых дальнейших действий или выполнение каких-то фоновых операций. Событие OnHint возникает в момент, когда на экране отображается ярлычок подсказки в результате того, что пользователь задержал курсор мыши над компонентом, инициализирующим событие. Наличие в объекте действия событий OnUpdate и OnHint расширяет возможности по проектированию приложения. В выпадающем списке события OnExecute содержатся значения FormCreate, N2Click, N3Click, N4Click, N6Click, т.е. имена написанных обработчиков событий – создание формы и щелчки на разделах меню Новое, Преобразование, Преобразование и вычисление, Выход. Для действия Anew примите N2Click, AMod - N3Click, ARun - N4Click, AExit - N6Click.
В свойство Images компонента MainMenu1 внесите ImageList1. Двойным щелчком на компоненте MainMenu1 перейдите в окно Form1-> MainMenu1 Конструктора Меню. В свойство Action разделов Новое, Преобразование, Преобразование и вычисление, Выход внесите соответственно значения Anew, AMod, ARun, AExit. Как показывает Инспектор Объектов, при этом в разделы меню переносятся свойства соответствующего объекта действия.
Со страницы Win32 перенесите на форму инструментальную панель - компонент ToolBar. По умолчанию он расположится вверху, поскольку его свойство Align по умолчанию равно alTop. Установите Align=alNone, чтобы можно было придать любую форму и расположить ее в любом месте. Полезно также воспользоваться свойством Constraints.
В свойство Hint впишите инструментальная панель, в свойство Images внесите ImageList1, в ShowHint – true. Щелкните правой кнопкой мыши на компоненте ToolBar1 и из всплывшего меню выберите команду Новая кнопка. В свойство Action кнопки внесите ANew, а в свойство ShowHint – true. Повторите эту команду еще для трех кнопок, внося в свойство Action соответственно AMod, ARun, AExit, в свойство ShowHint – true. Отметим, что свойства и обработчики событий объекта действия будут перенесены на соответствующие кнопки инструментальной панели.