Главная страница
Навигация по странице:

  • 4 КОНТРОЛЬНЫЕ ВОПРОСЫ

  • Практическая работа № 7 Полиморфизм. Полиморфные объекты. Цель работы: ознакомиться с понятием ООП полиморфизм.1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

  • 2 ВЫПОЛНЕНИЕ РАБОТЫ В работе требуется внимательно рассмотреть и разобрать приведенные примеры.3 ФОРМА ОТЧЕТА

  • Практическая работа № 8 Изучение интегрированной среды разработчика.

  • 2 ВЫПОЛНЕНИЕ РАБОТЫ В работе требуется внимательно рассмотреть и разобрать приведенные примеры.Практическая работа № 9 Изменение свойств и событий.

  • 1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

  • му паскаль и делфи. Методические рекомендации для студентов по выполнению практических работ для специальности 09. 02. 03 Программирование в компьютерных системах


    Скачать 2.13 Mb.
    НазваниеМетодические рекомендации для студентов по выполнению практических работ для специальности 09. 02. 03 Программирование в компьютерных системах
    Дата01.09.2022
    Размер2.13 Mb.
    Формат файлаdoc
    Имя файламу паскаль и делфи.doc
    ТипМетодические рекомендации
    #658926
    страница4 из 7
    1   2   3   4   5   6   7

    2 ВЫПОЛНЕНИЕ РАБОТЫ

    В работе требуется внимательно рассмотреть и разобрать приведенные примеры.
    3 ФОРМА ОТЧЕТА

    Отчет должен содержать ответы на вопросы.
    4 КОНТРОЛЬНЫЕ ВОПРОСЫ

    1. Дать определение абстракции.

    2. Что такое класс? Объясните различие терминов класс и объект.

    3. Для чего используются абстрактные модели?

    4. Дать определение понятию «инкапсуляция»

    5. Дать определение понятию «методы»

    6. Формат записи класса

    7. Объясните решение данного в работе упражнения

    8. Дать определение понятию «модульность»

    9. Дать определение понятию «иерархия». Определить ее виды.

    Практическая работа № 7

    Полиморфизм. Полиморфные объекты.
    Цель работы: ознакомиться с понятием ООП полиморфизм.
    1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
    В ООП возможна статическая и динамическая связь имени объекта и его типа. В первом случае это означает определение типов переменных во время компиляции. Во втором — тип выражения определяется во время исполнения приложения. Из принципов динамической связи и наследования вытекает очень важное свойство, присущее объектам — полиморфизм. Полиморфизм — это выделение некоторого действия, т. е. действие должно иметь имя, и создание средств использования действия объектами иерархии, причем каждый класс реализует это действие так, как оно для него подходит.

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

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

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

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

    В языках со строгой типизацией такая ситуация может возникнуть:

    при передаче объекта типа класса-потомка в качестве фак­тического параметра подпрограмме, в которой этот пара­метр описан как параметр типа класса-родителя (явно — в списке параметров или неявно — в качестве внутреннего параметра, используемого при вызове методов — Self);

    при работе с указателями, когда на объект класса-родителя присваивается адрес объекта класса-потомка.

    Тип полиморфного объекта становится известным только на этапе выполнения программы, соответственно, при вызове поли­морфного метода для такого объекта нужный аспект также дол­жен выполняться на этапе выполнения. Для этого в языке должен быть реализован механизм позднего связывания, позволяющий определять тип объекта и аспект полиморфного метода, к которо­му идет обращение в программе, на этапе ее выполнения.

    С помощью механизма позднего связывания реализуется опе­ративная перестройка программы в соответствии с типами ис­пользуемых объектов.

    Реализация динамической связи для объектов, имеющих хотя бы один виртуальный метод, осуществляется с помощью таблицы виртуальных методов (ТВМ). Она содержит адреса виртуальных методов. Для каждого класса вовремя компиля­ции программы строится одна ТВМ.


    Формирование связи между экземпляром класса (объектом) и ТВМ осуществляет конструктор.

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

    Итак, мы смогли исключить метод Move из описания класса TCircle, сделав его полиморфным. Все объекты классов TPoint и TCircle будут использовать его, причем так, как им это необ­ходимо.

    Сформулируем правила, которые важно выполнять при ра­боте с виртуальными методами:

    если в некотором классе метод описан как виртуальный, то все производные классы, включающие метод с тем же именем, должны описать этот метод как полиморфный (override). Нельзя заменить виртуальный метод статиче­ским;

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

    В дополнении к виртуальным методам, для реализации по­лиморфизма в Object Pascal используются динамические мето­ды. По возможностям наследования и перекрытия они анало­гичны виртуальным методам, но доступ к ним выполняется через таблицу динамических методов (ТДМ). ТДМ хранит адре­са только тех динамических методов, которые определены в данном классе. Такой подход позволяет снизить расход памяти при большом количестве этих методов и самих классов.

    На каждый динамический метод приходится только одна ссылка, представленная индексом, по которому и происходит поиск метода для вызова.

    Для объявления метода динамическим используется дирек­тива dynamic. Перекрытие динамических методов производит­ся так же, как и виртуальных — с использованием ключевого слова override.

    Абстрактные методы

    Абстрактные методы используются при объявлении мето­дов, реализация которых откладывается. Такие методы в клас­се описываются служебным словом abstract и обязательно пере­определяются в потомках класса.

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

    Упражнение 2 Разработайте родительский класс для ри­сования геометрических фигур.

    Решение

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

    Скрыть;

    Задать новое расположение геометрической фигуры;

    Отобразить;

    Методы скрыть и отобразить для каждой геометрической фигуры будут определять по-своему, поэтому необходимо объя­вить их виртуальными и абстрактными.

    Параллелизм — свойство нескольких абстракций одновре­менно находиться в активном состоянии, т. е. выполнять неко­торые операции.

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

    Процесс — это фундаментальная единица действия в систе­ме. Каждая программа имеет по крайней мере один поток управления, параллельная система, имеет много таких пото­ков: длительность существования одних недолго, а другие жи­вут в течение всего сеанса работы системы. Реальная паралле­льность достигается только на многопроцессорных системах, а системы с одним процессором имитируют параллельность за счет алгоритмов разделения времени.

    Сохраняемость — это способность абстракции существовать во времени, переживая породивший его процесс, и (или) в про­странстве, перемещаясь из своего первоначального адресного пространства.

    Любой программный объект существует в памяти и живет в течение некоторого времени. Спектр сохраняемости объектов охватывает:

    временные объекты, хранящие промежуточные результа­ты вычисления выражений;

    локальные объекты, существующие внутри подпрограмм, время жизни которых исчисляется от вызова подпрограм­мы до ее завершения;

    глобальные объекты, существующие, пока программа за­гружена в память;

    сохраняемые данные, которые сохраняются в файлах внеш­ней памяти между сеансами выполнения программы.

    Композиция и наполнение

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

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

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

    Включение объектов в некоторый класс можно реализовать и с использованием указателей на объекты.
    2 ВЫПОЛНЕНИЕ РАБОТЫ

    В работе требуется внимательно рассмотреть и разобрать приведенные примеры.
    3 ФОРМА ОТЧЕТА

    Отчет должен содержать ответы на вопросы.
    4 КОНТРОЛЬНЫЕ ВОПРОСЫ


    1. Перечислите этапы объектной декомпозиции.

    2. Что такое полиморфизм? Приведите пример, демонстрирующий не­обходимость определения полиморфного метода.

    3. Простой полиморфизм.

    4. Статический полиморфный метод.

    5. Сложный полиморфизм.

    6. Таблица виртуальных методов.

    7. Параллелизм.

    8. Процесс, сохраняемость.

    9. В чем сходство и отличие методов, описанных как виртуальные и ди­намические?

    10. Для чего используются абстрактные методы?

    11. Композиция и наполнение.

    Практическая работа № 8

    Изучение интегрированной среды разработчика.
    Цель работы: ознакомиться с интегрированной средой программы.
    1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
    Во времена DOS, которые уже стали историей, программи­сты стояли перед нелегким выбором между продуктивным, но неэффективным Basic и эффективным, но непродуктивным ас­семблером. Появление компилятора Turbo Pascal во многом разрешило их проблемы. Программисты, работающие под Windows 3.1, оказались перед схожей проблемой: что вы­брать— мощный, но требующий знаний C++, или простой, но крайне ограниченный Visual Basic (VB). С появлением в 1995 г. Delphi 1 возник новый подход к разработке приложений в среде Windows: простой язык, визуальная разработка приложений, со­здание откомпилированных выполняемых файлов, динамических библиотек и многое другое. Delphi 1 был первым инструментом разработки Windows-приложений, объединившим в себе оптими­зирующий компилятор, визуальную среду программирования и мощные возможности для работы с базами данных.

    В 1996 г. появилась версия Delphi 2, предназначенная для разработки приложений для 32-разрядных операционных систем Windows 95 или Windows NT.

    Delphi 3 вышла в 1997 г. В этой версии Delphi был расширен набор инструментов для разработки Windows-приложений, упро­щено использование таких технологий, как ActiveX и СОМ, поддержка баз данных с многоуровневой архитектурой.

    В 1998 г. появилась версия Delphi 4, главной задачей которой стало упрощение разработки приложений. Появились новые средства навигации в программах и используемых классах. Визу­альная среда разработки перепроектирована и дополнена возмож­ностью пристыковывать панели инструментов и окна, что сдела­ло процесс разработки более удобным. Были расширены средства поддержки корпоративных многопользовательских решений.

    Выход версии Delphi 5 в свет состоялся во второй половине 1999 г. Ее характеризуют:

    □ улучшение графической среды разработки и отладчика, пакет поддержки групповой разработки программ и инст­рументы трансляции;

    набор новых функций, предназначенных для упрощения разработки приложений для Internet;

    стабильность работы системы.

    2.2. Основные элементы среды программирования Delphi

    Для того чтобы запустить Delphi, выполните команду: Пуск — Программы — Borland Delphi 5 — Delphi 5 (рис. 2.2.1).

    В интегрированную среду разработки Delphi входит несколь­ко основных элементов.



    Главное окно Delphi. Главное окно Delphi содержит главное меню, панель быстрого доступа и палитру компонентов.

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

    Палитра компонентов содержит пиктограммы, которые пред­ставляют компоненты библиотеки визуальных компонент (VCL).

    Главное меню позволяет управлять всеми аспектами работы в Delphi из одного места, так что в Delphi не требуется индиви­дуального меню для каждого окна.

    Окно Object Inspector. Отображает свойства (или события) одного или нескольких выбранных компонентов. Окно инспек­тора объектов состоит из следующих элементов.

    Комбинированная панель выбора объекта — это поле, распо­ложенное вверху окна инспектора объектов. На рис. в комбинированной панели указан объект Forml: TForml.

    Страница свойств (Properties). Для каждого компонента опре­делен список свойств, изменение которых приводит к измене­нию внешнего вида объекта или к изменению реакции на внеш­ние воздействия. Левая колонка страницы свойств содержит имена свойств, а правая — их значения.

    Страница событий (Events). Каждый компонент способен ре­агировать на события, список которых отображен на странице событий инспектора объектов. Левая колонка страницы собы­тий содержит названия, а правая — имя процедуры-обработчи­ка события.

    Дизайнер форм. Форма — это визуальное изображение окна приложения. Простые приложения имеют только одну форму, а более сложные приложения могут обладать множеством та­ких форм. Точечная сетка, отображаемая в процессе проекти­рования приложения, помогает выравнивать помещаемые на форму компоненты. В скомпилированном приложении сетка не отображается.

    Окно редактирования модуля. Содержит текст модуля на языке Object Pascal, связанный с каждой формой приложения. Delphi автоматически создает этот программный код. Это окно также используется для редактирования других модулей при­ложения.

    2.3. Создание приложения

    При запуске Delphi автоматически создает новое приложе­ние, с которым Вы можете начать программирование новой за­дачи. Для удобства работы файлы каждого создаваемого проек­та лучше хранить в отдельной папке.

    2.3.1. Сохранение приложения

    Выберите команду File — Save All.

    В появившемся диалоговом окне сохранения файла создайте новую папку Exercise 1, в котором будут храниться файлы пер­вого проекта, созданного в Delphi. В строке Имя файла введите имя Main. Щелкните на кнопке Сохранить для сохранения фай­ла модуля, Main.pas (рис. 2.3.1.1), и файла формы, Main.dfm.

    Создать папку



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

    Затем Delphi с помощью еще одного диалогового окна сохра­нения файла запросит имя проекта. В строке Имя файла введи­те Exercisel и выберите Сохранить. Вы создадите файл проек­та — Exercisel. dpr.

    Используя программу Проводник Windows, убедитесь в том, что в папке Exercisel были созданы три указанных выше файла.

    2.3.2. Запуск приложения

    Выберите команду Run из меню Run или щелкните на кноп­ке Run панели быстрого доступа.

    Обратите внимание на внешний вид формы. Вовремя вы­полнения приложения исчезла точечная сетка, отображаемая в процессе проектирования. Курсор мыши имеет вид стрелки.

    Закройте приложение, для этого щелкните дважды на кнопке системного меню в верхнем левом углу окна или на кнопке за­крытия окна, расположенной в верхнем правом углу. Если Вы привыкли работать с клавиатурой, то для закрытия приложения и возврата в среду программирования Delphi нажмите AIt+F4.

    Если случайно приложение осталось открытым, многие команды Delphi будут недоступными (например, окно инспекто­ра объектов).

    2 ВЫПОЛНЕНИЕ РАБОТЫ

    В работе требуется внимательно рассмотреть и разобрать приведенные примеры.
    Практическая работа № 9

    Изменение свойств и событий.
    Цель работы: ознакомиться с интегрированной средой программы.
    1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

    Свойства влияют на то, как объект выглядит, и на его неви­димые черты (поведение).

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

    Свойство Name. В Delphi для каждого объекта имеется свой­ство Name. Когда компонент помещается в форму, Delphi авто­матически присваивает ему уникальное имя. Наш компонент форма имеет имя Forml.

    В ходе разработки программы происходит частое обращение к объектам по их именам, поэтому осмысленное присвоение имен компонентам избавляет от многих неприятностей.

    Назовем форму MainF (описана в модуле Main, буква F гово­рит о том, что данный объект — это форма (Form)). В окне инс­пектора объектов выберите свойство Name и в правом столбце наберите MainF. Это изменение сразу же отображается в комби­нированной панели выбора объекта инспектора объектов.

    Свойство Color определяет цвет. В Delphi предусмотрены предопределенные цветовые константы, которые соответствуют многим общеупотребительным цветам. Например, при выборе констант clRed или clYellow цвет формы изменяется соответст­венно, на красный или желтый. Кроме того, определены кон­станты для представления системных цветов экранных элементов Win32. Например, константы clActiveCaption и clHighLightText соответствуют цветам активных заголовков и выделенного цве­та в Win32.

    Установите цвет формы равным clGreen.

    Свойство Caption определяет заголовок формы. Измените значение этого свойства на значение - Мое первое приложение.

    Свойства Height и ClientHeight задают высоту формы и высо­ту рабочей области (исключая рамку и заголовок формы) соответ­ственно. Эти свойства связаны между собой: при изменении значения одного из свойств изменяется и другое. Свойства Width и UientWidth задают ширину формы и ширину рабочей области формы (исключая рамку формы) соответственно. Значения этих четырех свойств можно задать, уменьшая (или увеличивая) раз­меры формы, используя манипулятор мышь или вводя необходи­мые значения в правый столбец инспектора объектов.

    Свойства Тор и Left определяют расположение формы на эк­ране, задавая расстояние от верхней границы экрана до верхне­го края формы и от левой границы экрана до левого края формы соответственно.

    Кроме свойств, изменение значений которых приводит к ви­доизменению внешнего вида приложения вовремя проектиро­вания, существуют свойства, изменение значения которых ви­димо только после запуска приложения.

    Свойство Cursor определяет графический вид курсора В инспекторе объектов измените свойство Cursor, выбрав из списка любое значение. Запустите приложение, посмотрите, как изменился вид курсора. Значение свойства Cursor, равное crtielp, придает курсору вид стрелки со знаком вопроса. За­кроите приложение.

    Используя свойства Hint и ShowHint, можно отобразить подсказку. Установите значение свойства Hint в «Это форма» а значение ShowHint - в True. Запустите приложение Окно подсказки появляется, когда курсор мыши помещается на фор­му и на мгновение останавливается. Закройте приложение.

    Обработка событий

    Архитектуру программы, выполняющейся в операционной системе Windows, достаточно сложно нарисовать в виде визуа­льной схемы. Например, пусть программа только что начала работать. На экране показывается главное меню программы и пользователь нажимает на кнопку мыши. Нажатие на кнопку мыши является событием, начинает работать определенный объект. Пользователь мог бы не нажимать кнопку мыши, и тог­да работа программы пошла бы по другому сценарию. То есть ситуация типа: может быть, а может и не быть.

    В вероятностной структуре (это структура, в которой не все маршруты, трассы кодов жестко закреплены; в этой архитекту­ре элементы программ могут включаться при возникновении некоторого события, которое может произойти, а может и не произойти) сильно увеличивается количество возможных со­стояний и сценариев работы программы. Здесь пользователь определяет порядок работы программы.

    Приложения Delphi используют управляемые событиями ме­тоды для организации взаимодействия между программой и по­льзователем. Большая часть кода, которую Вы будете писать в Delphi, будет инициироваться событиями. В принципе событи­ем может быть изменение любой величины. Происхождение со­бытия заставляет работать определенный объект, при этом объект получает заранее определенные параметры для своей настройки на работу. В Delphi процедура, инициируемая событием, назы­вается обработчиком события.

    События делятся на три основные категории: события мыши, события клавиатуры и системные события.

    Изменение свойств. 1. События мыши

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

    Упражнение 1. Напишите приложение, которое при на­жатии левой кнопки мыши перекрашивает форму в красный цвет.

    Решение

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



    В обработчике события указан параметр Sender, в котором хранится имя объекта, породившего данное событие (в примере Sender будет содержать ссылку на объект MainF — форму).

    Для изменения цвета формы в обработчике события OnClick напишем следующий оператор:

    procedure TMainF.FormClick(Sender: TObject); begin

    MainF.Color := clRed (*)

    end;

    Поясним оператор (*). MainF — это название объекта фор­мы. Color — это свойство формы. Обращение к свойствам объ­екта происходит так же, как и в структуре данных записи, че­рез точку.

    Эксперимент. Запустите приложение. Щелкните левой кноп­кой мыши на форме. Убедитесь, что цвет формы стал красным.

    Что произойдет при повторном щелчке левой кнопкой мыши на форме? Возникнет событие OnClick, в результате которого вы­полнится оператор (*), т. е. цвет формы остается красным. ♦

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

    Обработку клавиатуры можно выполнить, используя комби­нацию трех событий.

    Событие OnKeyDown происходит при нажатии любой клави­ши, включая функциональные и специальные:

    procedure TForml.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

    Событие OnKeyPress возникает при нажатии клавиши, гене­рирующей символы ASCII, включая управляющие клавиши:

    procedure TForml.FormKeyPress(Sender: TObject; var Key: Char);

    Событие OnKeyUp происходит при освобождении любой кла­виши:

    procedure TForml.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

    Каждый из обработчиков событий получает по крайней мере, один параметр, называемый Key, который представляет нажа­тую клавишу, В обработчиках событий OnKeyDown и OnKeyUp параметр Key является беззнаковым значением типа Word, ко­торое представляет код виртуальной клавиши Windows. В об­работчике события OnKeyPress параметр Key — это значение типа Char, представляющее символ ASCII. Несмотря на то, что обе переменные называются Key, они представляют различную информацию. Все ASCII-символы имеют соответствующие коды виртуальных клавиш, но многие виртуальные клавиши не име­ют ASCII-эквивалента, например клавиша F1.

    Упражнение 2. Напишите приложение, закрывающе­еся при одновременном нажатии клавиш Alt и X.

    Решение

    Создайте новое приложение и сохраните его в папке Exerci-se6. Файл модуля — под именем Main,pas, файл проекта — Exercise6.dpr.

    Измените значения свойств формы следующим образом:



    Приложение должно закрываться, если одновременно нажа­ты обе клавиши, для обработки воспользуемся событием ОпКеу Down. Создайте обработчик этого события.

    Воспользуемся значением параметра Shift для определения нажатия клавиши Alt:

    if ssAlt in Shift then Close;

    {Close — это метод формы, закрывающий ее}

    Эксперимент. Убедитесь, что нажатие клавиши Alt приве­дет к закрытию формы. ♦

    Определим код клавиши X. Добавьте в обработчик события OnKeyDown оператор:

    Caption:=IntToStr(Key) ;

    Здесь IntToStr(x) — это функция, которая преобразует целое число х в значение строкового типа, Key — код нажатой клави­ши.

    Эксперимент. Запустите приложение. Определите виртуа­льный код клавиши с латинской буквой «х». ♦

    Итак, виртуальный код клавиши с латинской буквой «х» равен 88. Для решения задачи напишем следующий код обра­ботчика события OnKeyDown формы:

    procedure TMainF.FormKeyDown(Sender: TObject; var Key:

    Word; Shift: TShiftState);

    begin

    if (ssAlt in Shift) and (Key=88) then Close; end;

    Эксперимент. Сохраните приложение. Убедитесь, что при одновременном нажатии клавиш Alt и латинской буквы «х» независимо от выбранного языка приложение закрывается. Объ­ясните это. ♦

    3. Системные события. Отладка приложения: точки прерывания

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

    Событие OnCreate наступает, когда форма создается.

    Событие OnShow происходит, когда форма отображается (показана).

    Событие OnActive происходит, когда форма становится ак­тивным окном программы (событие генерируется при получе­нии формой фокуса ввода. Это происходит, когда пользователь возвращается в форму из другой формы того же приложения).

    Событие OnPaint происходит, когда форму необходимо ото­бразить заново (перерисовать).

    Событие OnResize происходит, когда размеры формы изме­няются.
    1   2   3   4   5   6   7


    написать администратору сайта