Процедуры обработки событий выбора из списка
Событие выбора из списка происходит тогда, когда путем нажатия на левую кнопку мыши осуществляется выбор строки списка. Такое же событие происходит, когда с помощью клавиш управления курсором осуществляется переход к последующей или предыдущей стоке списка. Имя этого события – onClick.
Процедуры обработки события onClick для списков - это процедуры с разветвлениями. В этих процедурах выполняемые действия зависят от выбора строки списка. Возможны различные способы организации этих процедур.
Первый способ состоит в том, что для выбора используется номер выбранной строки, доступ к которому возможен через свойство списка ItemIndex. Для организации разветвлений в процедуре в этом случае можно использовать инструкцию case, в которой будет анализироваться номер выбранной строки. Ниже приведен фрагмент тела процедуры, в котором реализован такой подход для задания значений коэффициентов квадратного уравнения в зависимости от выбранного варианта контрольного примера.
case lstVariant.ItemIndex of
0: //вещественные корни
setKoef(0.5,3,2.5);
1: //комплексные корни
setKoef(0.25,3,25);
2: //чисто мнимые корни
…
end;
Недостаток такого подхода состоит в том, что при изменении порядка следования строк в списке, процедура будет работать неправильно. Кроме того, анализировать работу процедуры без комментариев сложно. Но достоинство способа в том, что строки можно корректировать, это не повлияет на работу процедуры
Другой способ состоит в том, что процедура анализирует строки списка. Доступ к выбранной строке возможен через свойство Items списка, которое возвращает массив строк списка, и индекс выбранной строки ItemIndex. В этом случае инструкция case неприменима, так как строка не относится к порядковым типам. Поэтому для организации разветвлений используется цепочка операторов if.
Ниже приведен фрагмент тела процедуры, которая решает задачу, подобную той, что была рассмотрена выше.
…
var text:String;
begin
text := lstVariant.Items[lstVariant.ItemIndex];
if text='Вещественные корни'
then setKoef(0.5, 3, 2.5)
else if text='Комплексные корни'
then setKoef(0.25, 3, 25)
…;
end;
Достоинство этого способа в том, что здесь отпадает необходимость писать комментарии. Недостаток же в том, что если строка списка изменится, процедура перестанет работать правильно.
Создайте шаблон процедуры обработки события onClick для списка lstVariant и напишите тело процедуры одним из рассмотренных выше способов. Коэффициенты, обеспечивающие получение требуемого варианта подберите сами.
Процедуру setKoef мы уже использовали в предыдущей работе, подобную процедуру следует написать и в данном проекте.
Проверьте работу созданных процедур.
- Ответственный за выпуск: Бивойно п.Г. , декан факультета электронных и информационных технологий, канд. Техн. Наук, доцент
- Содержание
- 4.1.4 Разработка интерфейса проекта 66
- 5.1.7 Разработка интерфейса проекта 81
- Введение
- Лабораторная работа № 1. Знакомство с интегрированой средой разработки (иср)“Delphi 7”
- Краткие теоретические сведения о иср “Delphi 7”
- Конструктор стартовой формы
- Главное окно иср “Delphi 7”
- Главное меню
- Панели инструментов
- Палитра компонентов
- Окно просмотра дерева объектов
- Окно редактора кода
- Закладка редактора кода модуля
- Закладка редактора кода файла проекта
- Окно Object Inspector
- Закладка описания свойств объекта
- События и процедуры обработки событий
- Создание простейшего проекта
- Разработка интерфейса проекта
- Создание процедуры инициализации приложения
- Создание процедуры вычисления результата
- Улучшение проекта
- Сохранение проекта
- Продолжение работы с проектом на другом компьютере
- Содержание отчета
- Контрольные вопросы и задания
- Рекомендованая литература
- Лабораторная работа № 2. Вещественный тип данных. Расчеты по формулам
- Краткие теоретические сведения
- Язык программирования Object Pascal
- Объекты, переменные и константы
- Классы и типы
- Объявление объектов и переменных
- Вещественный тип данных
- Выражение
- Стандартные функции для данных вещественного типа
- Инструкция присваивания
- Форматирование результатов расчетов
- Создание проекта «Расчет по формуле»
- Создание интерфейса
- Компонент ole-контейнер
- Компонент Group Box
- Компонент Memo
- Завершение работы над интерфейсом
- Создание процедур обработки событий Процедура очистки протокола
- Процедура инициализации формы
- Процедура выполнения расчета по формуле
- Контольный пример
- Трассировка процедуры
- Содержание отчета
- Контрольные вопросы
- Рекомендованая литература
- Лабораторная работа № 3. Подпрограммы Краткие теоретические сведения
- Правила написания подпрограмм
- Описание процедуры
- Вызов процедуры
- Описание функции
- Вызов функции
- Способы передачи параметров в подпрограммы
- Передача параметров по значению
- Передача параметров по наименованию
- Расположение подпрограмм
- Подпрограммы обработки событий класса формы
- Другие подпрограммы класса формы
- Размещение подпрограмм в модуле
- Размещение подпрограмм в других модулях
- Размещение подпрограмм внутри других подпрограмм
- Область действия имен
- Реализация проекта «Процедуры и функции»
- Создание процедур и функций Процедуры инициализации
- Процедура считывания коэффициентов уравнения
- Функция для расчета по формуле
- Использование дополнительного модуля
- Завершение работы над проектом
- Исследование созданного приложения
- Анализ передачи параметров по наименованию
- Анализ передачи параметров по значению
- Содержание отчета
- Контрольные вопросы
- Операции над логическими данными
- Логические выражения
- Разветвляющиеся алгоритмы
- Программирование разветвлений Условный оператор if…then…else
- Оператор варианта case
- Реализация проекта «Организация разветвлений»
- Разработка интерфейса проекта
- Компоненты для работы со списками
- Процедуры обработки событий выбора из списка
- Процедуры обработки событий onKeyPress
- Решение квадратного уравнения
- Содержание отчета
- Контрольные вопросы
- Лабораторная работа № 5. Построение циклов с инструкциями „while” и „repeat”
- Краткие теоретические сведения
- Циклические алгоритмы
- Инструкция while…do
- Инструкция repeat…until
- Прерывание цикла
- Итерационные алгоритмы
- Пример итерационного алгоритма для вычисления кубического корня
- Задание для самостоятельной работы
- Алгоритмы вычисления сумм бесконечных рядов
- Задание для самостоятельной работы
- Создание проекта WhileRepeat
- Разработка интерфейса проекта
- Компоненты PageControl и TabSheet
- Компонент CheckBox
- Создание закладки для вычисления корня
- Создание закладки для вычисления синуса
- Создание процедур и функций Процедура для контроля ввода данных
- Процедура вычисления кубического корня
- Процедура вычисления синуса
- Задания для расчетно-графической работы № 2
- Содержание отчета
- Контрольные вопросы
- Целые типы данных
- Символьные типы данных
- Ограниченный тип данных.
- Применение инструкции цикла for
- Табулирование значений функций
- Форматирование результатов при выводе таблиц
- Строки символов
- Операции над строками
- Процедура Delete
- Процедура Insert
- Функция Pos
- Функции Trim, TrimLeft, TrimRight
- Создание проекта «Применение цикла for»
- Разработка формы «Табулирование функции» Разработка интерфейса
- Создание вспомогательных процедур и функций
- Создание процедуры табулирования функции
- Разработка формы «Таблица “символ-код”» Разработка интерфейса
- Создание процедуры вывода таблицы символ-код
- Разработка формы «Обработка последовательностей целых чисел»
- Разработка интерфейса
- Создание процедуры обработки последовательности целых чисел
- Создание многодокументной (mdi)формы
- Задание для самостоятельной работы
- Содержание отчета
- Контрольные вопросы
- Рекомендованая литература