суббота, 9 февраля 2013 г.

события и делегирование в ооп

0.49 Mb.НазваниеИ. В. Сухарева объектно-ориентированное программирование лабораторный практикумстраница8/9Дата конвертации11.10.2012Размер0.49 Mb.Тип               8   события и делегирование Цель работы Получение навыков работы с событиями, изучение вариантов приведения объектных типов, приобретение навыков разработки обработчиков событий, получение представления об указателе на метод, указателе на объект. Программное обеспечение Borland Delphi, C++ Builder. Практическое задание Разработать программу в соответствии с описанием: на главной форме расположены 10 кнопок;при нажатии на одну из них она «запрыгает» - то есть многократно сместится вверх-вниз;при нажатии на любую из них (в том числе и прыгающую) номер «прыгающей» кнопки изменяется случайным образом. методические рекомендации Обработчики событий. Требуется разработать два обработчика события нажатие на кнопку. Первый «прыгающий», второй нет. В период разработки не стоит назначать эти обработчики конкретным кнопкам. Рекомендуется организовать две переменные указатели на метод (например как поля объекта форма).При создании формы следует разыграть случайным образом номер «прыгающей» кнопки (random) и, в соответствии с этим, установить обработчики событий OnClick всех 10 кнопок: 9 «не прыгающих» и одной «прыгающей». Работа с кнопками. Для удобства работы рекомендуется создать массив из десяти указателей на кнопку, элементам которого при создании формы присвоить указатели на конкретные кнопки, созданные путем перетаскивания на форму. Это позволит адресовать кнопки по индексу.Например,...varButtons : array[1..10]of TButton;i:integer;...for i:=1 to 10 dobeginButtons[i]:=TButton.Create(Self);Buttons[i].Parent:=Self;Buttons[i].Caption:=IntToStr(i);Buttons[i].Top:=i*30;Buttons[i].Visible:=true;...end; Разработка визуальных компонентов Delphi Цель работы Получение практических навыков разработки собственных компонентов. Программное обеспечение Borland Delphi, C++ Builder. Практическое задание Разработать визуальный компонент Delphi потомок TGraphicControl, представляющий собой любую статичную картинку на форме, представленный соответствующей картинкой на панели компонентов.Разработать визуальный компонент Delphi потомок компонента, описанного в п.1, представляющий собой меняющуюся во времени картинку на форме. Возможное целевое назначение таких компонентов фирменный знак. методические рекомендации Разработка новых визуальных компонентов обычно производится путем порождения классов-потомков от уже существующих в используемой библиотеке и требует как знаний концепций ООП и конкретного языка программирования, так и структуры конкретной объектно-ориентированной библиотеки компонентов Иерархия библиотечных классов в Borland Delphi Все компоненты Delphi являются частью иерархии классов, называемой Visual Component Library (VCL). Часть этой иерархии представлена на рисунке 7.1. Класс TObject инкапсулирует наиболее общее поведение всех объектов в VCL и включает методы, которые обеспечивают: возможность создавать, поддерживать и уничтожать экземпляры объектов, путем распределения, инициализации и освобождения памяти, необходимой под объект,методы класса, предназначенные для доступа к информации класса, поддерживает обработку сообщений.Назначение TObject служить базовым для всех других классов.Многие методы TObject используются Delphi скрыто от разработчика и не вызываются разработчиком непосредственно. Другая группам методов должна быть перекрыта порождаемыми от него классами для реализации их более сложного поведения. Экземпляры класса TObject обычно не создаются, так как большинство его методов абстрактные.Класс TComponent является общим предком всех компонентов в VCL. Он обеспечивает минимальный набор свойств и событий необходимых, чтобы компонент мог использоваться DelphiПри создании нового компонента он добавляется в библиотеку путем порождения нового класса от одного из существующих классов иерархии.TControl базовый класс для всех компонентов, которые видимы во время исполнения и которыми пользователь может манипулировать во время выполнения программы. Такие компоненты называют элементами управления. Все элементы управления имеют свойства, методы и события которые, в основном, служат для обеспечения визуального аспекта, например расположения элемента управления, курсора и подсказки, связанных с элементом управления, методов отрисовки и перемещения элемента управления и обработки событий на действия от мыши. TControl имеет много защищенных свойств и методов, которые используются или публикуются в его потомках. TWinControl базовый класс для всех оконных элементов управления. Оконные элементы управления это те, которые: способны получать фокус во время выполнения программы (т.е. пользователь может их выделять),способны получать данные, вводимые пользователем в элемент с клавиатуры, способны включать в себя другие элементы управления. Элементы управления, которые включаю в себя другие элементы управления называют их владельцами (parent). Только оконный элемент управления может быть владельцем одного или более других компонентов.Оконные элементы управления имеют свойство handle, которое представляет собой дескриптор окна. Дескриптор окна это идентификатор, предоставляемый Windows окну. Windows может взаимодействовать с оконным элементом управления через этот дескриптор.Новые компоненты редко порождаются непосредственно от TWinControl. Большинство новых элементов управления создаются как потомки TCustomControl, который предоставляет возможности вывода графической информации холст («canvas»), или как потомки более специализированных элементов управления, таких как TButtonControl, TCustomComboBox, TCustomEdit, или TCustomListBox.TCustomControl базовый класс для оконных элементов управления, которым необходима возможность создания сложных изображений.Стандартный оконный элемент управления всегда «знает» как себя отобразить, так как он является частью Windows. Таким образом, кнопка или индикатор с флажком порождены непосредственно от TWinControl. Когда же создается оригинальный оконный элемент управления, который не имеет соответствующего стандартного компонента Windows, он порождается от TCustomControl, а не непосредственно от TWinControl. TCustomControl делает отрисовку оригинального элемента управления простой для программиста. TCustomControl имеет виртуальный метод Paint, который вызывается при необходимости перерисовки элемента управления (сообщение WM_PAINT). При разработке нового компонента программист помещает в этот метод действия по рисованию его элемента управления. Действия же эти он берет через свойство Canvas:TCanvas (канва или холст).Класс TCanvas объединяет в себе «холст» (контекст графического устройства) и «рабочие инструменты» (перо, кисть, шрифт) а также набор функций по рисованию типовых геометрических фигур.Если необходимо создать элемент управления, который не должен получать фокус ввода, то его порождают от TGraphicControl, а не от TCustomControl, чтобы избежать накладных расходов, связанных с возможностями оконного элемента управления. Отрисовка оконного элемента управления медленнее, чем отрисовка графического элемента управления.TGraphicControl базовый класс для элементов управления, не являющихся оконными. Основна

события и делегирование - И. В. Сухарева объектно-ориентированное программирование лабораторный практикум

Комментариев нет:

Отправить комментарий