Пример Редактора Компонент

В качестве примера создадим Редактор Компонент для класса TButton. Этот Редактор будет показывать сообщение и изменять свойство Caption у объекта TButton. В данном примере это будет срабатывать и при двойном щелчке мыши, и через контекстное меню.

Объявление нового класса Редактора Компонент:

TButtonEditor = class(TComponentEditor)

private

procedure HiThere;

public

procedure Edit; override;

procedure ExecuteVerb(Index: Integer); override;

function GetVerb(Index: Integer): string; override;

function GetVerbCount: Integer; override;

end;

Процедура HiThere будет показывать сообщение и изменять свойство Caption:

procedure TButtonEditor.HiThere;

begin

MessageDlg('Hi! It replaces Default Component Editor.',

mtInformation, [mbOK], 0);

(Component as TButton).Caption:='Hi!';

Designer.Modified;

end;

Процедуры Edit и ExecuteVerb тольковызывают HiThere:

procedure TButtonEditor.Edit;

begin

HiThere;

end;

 

procedure TButtonEditor.ExecuteVerb(Index: Integer);

begin

if Index = 0 then HiThere;

end;

Процедуры GetVerb и GetVerbCount определяют вид контекстного меню:

function TButtonEditor.GetVerb(Index: Integer): string;

begin

result:='&Get message ...'

end;

 

function TButtonEditor.GetVerbCount: Integer;

begin

result:=1;

end;

Здесь в контекстное меню добавляется один пункт "Get message :".

Редактор Компонент готов. Теперь необходимо зарегистрировать новый Редактор Компонент, это делается аналогично регистрации Редактора Свойств:

procedure Register;

begin

RegisterComponentEditor(TButton, TButtonEditor);

end;

После подключения нового Редактора Компонент в среду Delphi (пункт меню "Options|Install Components"), создайте новый проект, положите на форму объект TButton и щелкните дважды на нем - появится диалог:

После того, как Вы нажмете "OK", текст на кнопке изменится.

Созданный Редактор Компонент заместит Редактор по умолчанию для всех объектов класса TButton и его наследников, например, TBitBtn.

 

Контрольные вопросы

1. Для чего предназначены Редакторы Свойств?

2. Какие стандартные Редакторы Свойств существуют в Delphi?

3. Какой класс является базовым для Редакторов Свойств?

4. Длячегоиспользуютсяметоды Activate, AllEqual, Edit, GetAttributes, GetComponent, GetEditLimit, GetName, GetProperties, GetPropType, GetValue, GetValues, Initialize, SetValue(Value), Modified, GetXxxValue, SetXxxValue, свойства PrivateDirectory и Valueкласса TPropertyEditor?

5. Как можно редактировать значение свойства в Инспекторе Объектов?

6. Какие основные этапы выделяют при создании Редактора Свойств?

7. Какая процедура используется для регистрации Редактора Свойств? Что указывается в каждом ее параметре?

8. Как производится установка Редактора свойств?

9. Для чего предназначен Редактор Компонента?

10. Какой класс берется в качестве родительского при создании собственного Редактора Компонента? Где располагается данный класс?

11. Для чего предназначены методы Create, Edit, GetVerbCount, GetVerb и ExecuteVerb Редактора Компонента?

12. Что выполняет Редактор Компонента по умолчанию (TDefaultEditor) при двойном щелчке по компоненту?

13. Что переопределяется при создании Редактора Компонента?

14. Какие процедуры обеспечивают регистрацию Редактора Компонента?

15. Как созданный Редактор Компонента подключается в среде Delphi?

 


 

Лекция 17

 

ТЕМА:Отладка программ. Инструменты. Методика отладки.

Литература: 1. Культин Н. Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2010.

2. http://www.helloworld.ru/texts/comp/lang/delphi/delphi4/DebugerDelphi.htm

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

Определение 1.Отладка программы — это специальный этап в разработке программы, состоящий в выявлении и устранении программных ошибок, факт существования которых уже установлен.

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

1. Синтаксическая ошибка. Неправильное употребление синтаксических конструкций, например употребление оператора цикла For без Tо.








Дата добавления: 2015-09-07; просмотров: 857;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.