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




НазваниеИ. В. Сухарева объектно-ориентированное программирование лабораторный практикум
страница8/9
Дата конвертации11.10.2012
Размер0.49 Mb.
ТипДокументы
1   2   3   4   5   6   7   8   9

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

    1. Цель работы


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


    1. Программное обеспечение


Borland Delphi, C++ Builder.

    1. Практическое задание


Разработать программу в соответствии с описанием:

  • на главной форме расположены 10 кнопок;

  • при нажатии на одну из них она «запрыгает» - то есть многократно сместится вверх-вниз;

  • при нажатии на любую из них (в том числе и прыгающую) номер «прыгающей» кнопки изменяется случайным образом.



    1. методические рекомендации

      1. Обработчики событий.


Требуется разработать два обработчика события – нажатие на кнопку. Первый – «прыгающий», второй – нет. В период разработки не стоит назначать эти обработчики конкретным кнопкам. Рекомендуется организовать две переменные – указатели на метод (например как поля объекта форма).

При создании формы следует разыграть случайным образом номер «прыгающей» кнопки (random) и, в соответствии с этим, установить обработчики событий OnClick всех 10 кнопок: 9 «не прыгающих» и одной «прыгающей».


      1. Работа с кнопками.


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

Например,

...

var

Buttons : array[1..10]of TButton;

i:integer;

...

for i:=1 to 10 do

begin

Buttons[i]:=TButton.Create(Self);

Buttons[i].Parent:=Self;

Buttons[i].Caption:=IntToStr(i);

Buttons[i].Top:=i*30;

Buttons[i].Visible:=true;

...

end;

Разработка визуальных компонентов Delphi

    1. Цель работы


Получение практических навыков разработки собственных компонентов.

    1. Программное обеспечение


Borland Delphi, C++ Builder.

    1. Практическое задание


  1. Разработать визуальный компонент Delphi – потомок TGraphicControl, представляющий собой любую статичную картинку на форме, представленный соответствующей картинкой на панели компонентов.

  2. Разработать визуальный компонент Delphi – потомок компонента, описанного в п.1, представляющий собой меняющуюся во времени картинку на форме.

Возможное целевое назначение таких компонентов – фирменный знак.
    1. методические рекомендации


Разработка новых визуальных компонентов обычно производится путем порождения классов-потомков от уже существующих в используемой библиотеке и требует как знаний концепций ООП и конкретного языка программирования, так и структуры конкретной объектно-ориентированной библиотеки компонентов

    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 – базовый класс для элементов управления, не являющихся оконными.

Основная цель большинства графических элементов управления – отображения текста или графики. Компоненты Delphi, порожденные от TGraphicControl это: TBevel, TImage, TPaintBox, TShape, TSpeedButton, TSplitter и TCustomLabel, из которых в свою очередь порождены TDBText and TLabel.

В добавление к тому, что унаследовано от абстрактного компонента TControl, TGraphicControl имеет свойство Canvas, которое обеспечивает возможности рисования элемента управления и виртуальный метод Paint, который вызывает при необходимости его перерисовки (сообщении WM_PAINT, получаемом от владельца элемента управления).

Графический элемент управления не может получать фокус ввода, а также не может содержать в себе других элементов управления. Хотя он не может получить фокус ввода, он может реагировать на сообщения мыши.

Так как графический элемент управления не имеет дескриптора окна Windows (window handle), его потребность в системных ресурсах меньше и именно поэтому его перерисовка происходит быстрее, чем у оконного элемента управления, который имеет дескриптор окна.

Пример компонента, порожденного от TGraphicControl – TLabel.

1   2   3   4   5   6   7   8   9

Похожие:

И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconПрограмма  дисциплины  «Объектно-ориентированное  программирование»  со
Дисциплина  (курс)  Объектно-ориентированное  программирование  имеет  своей  це
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум icon“Объектно-ориентированное программирование”
Целью данной учебной дисциплины является обучение программированию на языке Си++ с использованием принципов объектно-ориентированного...
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconИнтегрированная среда разработки языка Visual Basic
...
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум icon        биологические основы   лесного хозяйства      Лабораторный  практикум                
Лабораторный практикум для подготовки бакалавра   по профессионально-образовательной программе 250300  
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум icon      Факультет бизнес-информатика      Объектно-ориентированный анализ и программирование 
Основная цель, которую необходимо достичь в результате обучения дисциплине  Объектно
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconКонспект  лекций, лабораторный  практикум, практикум, контрольно-измерительные  материа
У66   Управляемые  конструкции  и  системы. [Электронный  ресурс] :  метод.  ука
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconЛабораторный практикум  по физике 
Предисловие    8 
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconЛабораторный практикум  по общей химии 
Введение  5 
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconЛабораторный практикум   по молекулярной физике,   термодинамике  
Введение  5 
И. В. Сухарева объектно-ориентированное программирование лабораторный практикум iconЛабораторный практикум   по курсу общей
Обработка результатов измерений   4 
Разместите кнопку на своём сайте:
TopReferat


База данных защищена авторским правом ©topreferat.znate.ru 2012
обратиться к администрации
ТопРеферат
Главная страница