Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Использование открытых интерфейсов среды программирования Delphi

Ночник-проектор "Звездное небо и планеты", фиолетовый.
Оригинальный светильник - ночник - проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фонариков) 2) Три
330 руб
Раздел: Ночники
Забавная пачка "5000 дублей".
Юмор – настоящее богатство! Купюры в пачке выглядят совсем как настоящие, к тому же и банковской лентой перехвачены... Но вглядитесь
60 руб
Раздел: Прочее
Забавная пачка денег "100 долларов".
Купюры в пачке выглядят совсем как настоящие, к тому же и банковской лентой перехвачены... Но вглядитесь внимательней, и Вы увидите
60 руб
Раздел: Прочее

Одной и наиболее сильных сторон среды программирования Delphi является ее открытая архитектура, благодаря которой Delphi допускает своего рода метапрограммирование, позволяя “программировать среду программирования”. Такой подход переводит Delphi на качественно новый уровень систем разработки приложений и позволяет встраивать в этот продукт дополнительные инструментальные средства, поддерживающие практически все этапы создания прикладных систем. Столь широкий спектр возможностей открывается благодаря реализованной в Delphi концепции так называемых открытых интерфейсов, являющихся связующим звеном между IDE (I egra ed Developme E viro me ) и внешними инструментами. Данная статья посвящена открытым интерфейсам Delphi и представляет собой обзор представляемых ими возможностей. В Delphi определены шесть открытых интерфейсов: ool I erface, Desig I erface, Exper I erface, File I erface, Edi I erface и Versio Co rol I erface. Вряд ли в рамках данной статьи нам удалось бы детально осветить и проиллюстрировать возможности каждого из них. Более основательно разобраться в рассматриваемых вопросах вам помогут исходные тексты Delphi, благо разработчики снабдили их развернутыми комментариями. Объявления классов, представляющих открытые интерфейсы, содержатся в соответствующих модулях в каталоге .DelphiSource oolsAPI. Desig I erface (модуль Dsg I f.pas) предоставляет средства для создания редакторов свойств и редакторов компонентов. Редакторы свойств и компонентов – это тема, достойная отдельного разговора, поэтому напомним лишь, что редактор свойства контролирует поведение Инспектора Объектов при попытке изменить значение соответствующего свойства, а редактор компонента активизируется при двойном нажатии левой кнопки мыши на изображении помещенного на форму компонента. Versio Co rol I erface (модуль VCSI f.pas) предназначен для создания систем контроля версий. Начиная с версии 2.0, Delphi поддерживает интегрированную систему контроля версий I ersolv PVCS, поэтому в большинстве случаев в разработке собственной системы нет необходимости. По этой причине рассмотрение Versio Co rol I erface мы также опустим. File I erface (модуль FileI f.pas) позволяет переопределить рабочую файловую систему IDE, что дает возможность выбора собственного способа хранения файлов (в Memo-полях на сервере БД, например). Edi I erface (модуль Edi I f.pas) предоставляет доступ к буферу исходных текстов, что позволяет проводить анализ кода и выполнять его генерацию, определять и изменять позицию курсора в окне редактора кода, а также управлять синтаксическим выделением исходного текста. Специальные классы предоставляют интерфейсы к помещенным на форму компонентам (определение типа компонента, получение ссылок на родительский и дочерние компоненты, доступ к свойствам, передача фокуса, удаление и т.д.), к самой форме и к ресурсному файлу проекта. Также Edi I erface позволяет идентифицировать так называемые модульные нотификаторы, определяющие реакцию на такие события, как изменение исходного текста модуля, модификация формы, переименование компонента, сохранение, переименование или удаление модуля, изменение ресурсного файла проекта и т.

д. ool I erface (модуль oolI f.pas) предоставляет разработчикам средства для получения общей информации о состоянии IDE и выполнения таких действий, как открытие, сохранение и закрытие проектов и отдельных файлов, создание модуля, получение информации о текущем проекте (число модулей и форм, их имена и т. д.), регистрация файловой системы, организация интерфейсов к отдельным модулям и т.д. В дополнение к модульным нотификаторам ool I erface определяет add-i нотификаторы, уведомляющие о таких событиях, как открытие/закрытие файлов и проектов, загрузка и сохранение desk op-файла проекта, добавление/исключение модулей проекта, инсталляция/деинсталляция пакетов, компиляция проекта, причем в отличие от модульных нотификаторов add-i нотификаторы позволяют отменить выполнение некоторых событий. Кроме того, ool I erface предоставляет средства доступа к главному меню IDE Delphi, позволяя встраивать в него дополнительные пункты. Exper I erface (модуль Exp I f.pas) представляет собой основу для создания экспертов — программных модулей, встраиваемых в IDE c целью расширения ее функциональности. В качестве примера эксперта можно привести входящий в Delphi Da abase Form Wizard, выполняющий генерацию формы для просмотра и изменения содержимого таблицы БД. Определив класс эксперта, необходимо позаботиться о том, чтобы Delphi “узнала” о нашем эксперте. Для этого его нужно зарегистрировать посредством вызова процедуры Regis erLibraryExper , передав ей в качестве параметра экземпляр класса эксперта. В качестве иллюстрации создадим простой эксперт в стиле esS a dard, который при выборе соответствующего ему пункта меню Delphi выводит сообщение о том, что он запущен. Как видно из вышеприведенной таблицы, стиль esS a dard обязывает перекрыть шесть методов: Для того чтобы эксперт был “приведен в действие”, необходимо выбрать пункт меню Compo e /I s all Compo e . , выбрать в диалоге Browse модуль, содержащий эксперт (в нашем случае exmpl 01.pas), нажать ОК, и после компиляции пакета dclusr30.dpk в главном меню Delphi в разделе Help должен появиться пункт Simple Exper 1, при выборе которого появляется информационное сообщение “S a dard Exper s ar ed!”. Почему Delphi помещает пункт меню эксперта в раздел Help, остается загадкой. Если вам не нравится то, что пункт меню появляется там, где угодно Delphi, а не там, где хотите вы, возможен следующий вариант: создать эксперт в стиле add-i , что исключает автоматическое создание пункта меню, а пункт меню добавить “вручную”, используя средства ool I erface. Это позволит задать местоположение нового пункта в главном меню произвольным образом. Для добавления пункта меню используется класс I oolServices — основа ool I erface — и классы IMai Me uI f, IMe uI emI f, реализующие интерфейсы к главному меню IDE и его пунктам. Экземпляр oolServices класса I oolServices создается самой IDE при ее инициализации. Обратите внимание на то, что ответственность за освобождение интерфейсов к главному меню Delphi и его пунктам целиком ложится на разработчика. Попутно немного усложним функциональную нагрузку эксперта: при активизации своего пункта меню он будет выдавать справку об имени проекта, открытого в данный момент в среде: В этом примере центральное место занимает функция AddIDEMe uI em, осуществляющая добавление пункта меню в главное меню IDE Delphi.

В качестве параметров ей передаются текст нового пункта меню, его идентификатор, идентификатор пункта, перед которым вставляется новый пункт, символьное представление клавиши, которая вместе с клавишей C rl может использоваться для быстрого доступа к новому пункту, и обработчик события, соответствующего выбору нового пункта. Мы добавили новый пункт меню в раздел View перед пунктом Wa ches. Теперь познакомимся с нотификаторами. Определим add-i нотификатор, отслеживающий моменты закрытия/открытия проектов и корректирующий соответствующим образом поле, хранящее имя активного проекта (реализацию методов, не претерпевших изменений по сравнению с тпредыдущим примером, для краткости опустим): Для реализации нотификатора мы определили класс AddI o ifier, являющийся потомком IAddI o ifier, и перекрыли метод File o ifica io . IDE будет вызывать этот метод каждый раз, когда происходит событие, на которое способен среагировать add-i нотификатор (каждое такое событие обозначается соответствующей константой типа File o ifica io ). Поле Exper в классе AddI o ifier служит для обратной связи с экспертом (метод AddI o ifier.File o ifica io ). В деструкторе эксперта регистрация нотификатора снимается, и нотификатор уничтожается. А теперь проиллюстрируем использование модульных нотификаторов. Создадим add-i эксперт, выдающий сообщения о каждом акте сохранения проектного файла (реализацию уже знакомых нам методов для краткости не приводим): В данном примере add-i эксперт отслеживает события, соответствующие открытию/закрытию проектов. При каждом открытии проекта регистрируется модульный нотификатор, соответствующий файлу проекта. В плане реализации модульные нотификаторы схожи с add-i нотификаторами: мы определяем класс Module o ifier, являющийся потомком IModule o ifier и перекрываем его методы o ify и Compo e Re amed. IDE вызывает метод o ify при возникновении определенных событий, имеющих отношение к данному модулю; внутри этого метода и определяется реакция на то или иное событие. Метод Compo e Re amed вызывается при изменении имени компонента, лежащего на форме модуля. Обратите внимание на то, что мы не используем этот метод, но обязаны его перекрыть, иначе при изменении имени компонента будет происходить вызов абстрактного метода базового класса, что приводит к непредсказуемым последствиям. Регистрация модульного нотификатора является несколько более сложным процессом по сравнению с регистрацией add-i нотификатора: сначала мы получаем интерфейс модуля ( IModuleI erface), а затем с помощью интерфейса модуля регистрируем нотификатор. При закрытии проекта регистрация модульного нотификатора снимается (снова с использованием IModuleI erface), и нотификатор уничтожается. В заключение покажем, как можно определять позицию курсора в окне редактора кода. Создадим эксперт, который при выборе соответствующего пункта меню выдавал бы сообщение, содержащее имя активного файла и позицию курсора в нем (приведена реализация только существенных для данного примера методов): Для определения позиции курсора мы должны получить следующую последовательность интерфейсов: модульный интерфейс ( IModuleI erface); интерфейс редактора кода ( IEdi orI erface); интерфейс представления модуля в окне редактора ( IEdi View).

Первый вариант предпочтительнее, так как многие компиляторы выдают несколько более эффективный код, когда использован крайний левый базовый класс[1]. Использование указателей интерфейса СОМ Программисты C++ должны использовать методы IUnknown явно, потому что перевод модели СОМ на язык C++ не предусматривает использования среды поддержки выполнения (runtime layer) между кодом клиента и кодом объекта. Поэтому IUnknown можно рассматривать просто как набор обещаний, которые все программисты СОМ дают друг другу. Это дает преимущество программистам C++, так как C++ может создавать код, который потенциально более эффективен, чем языки, которые требуют такого динамического слоя при работе с СОМ. При работе на Visual Basic и Java, в отличие от C++, программисты никогда не видят QueryInterface, AddRef или Release. Для этих двух языков детали IUnknown надежно скрыты за поддерживающей эти языки виртуальной машиной. На Java QueryInterface просто отображается в приведение типа: public void TryToSnoreAndIgnore(Object obj) { IPug pug; try { pug = (IPug)obj; // VM calls QueryInterface // VM вызывает QueryInterface pug.Snore(); } catch (Throwable ex) { // ignore method or QI failures // игнорируем сбой метода или QI } ICat cat; try { cat = (ICat)obj; // VM calls QueryInterface // VM вызывает QueryInterface cat.IgnoreMaster(); } catch (Throwable ex) { // ignore method or QI failures // игнорируется сбой метода или QI } } Visual Basic не требует от клиентов приведения типов

1. Программирование на Object Pascal в среде Delphi

2. Роль микроэлементов в обменных процессах растений и на накоплении ими биологически активных веществ (Реферат (обзор литературы) () WinWord 97)

3. Экономическая сказка-реферат "НДС - вражья морда" или просто "Сказка про НДС"

4. Несколько рефератов по культурологии

5. Реферат по научной монографии А.Н. Троицкого «Александр I и Наполеон» Москва, «Высшая школа»1994 г.

6. Пример базы данных на Delphi 2.0
7. Разработка базы данных `ДЕКАНАТ` в среде программирования "Delphi"
8. VB, MS Access, VC++, Delphi, Builder C++ принципы(технология), алгоритмы программирования

9. Программирование на Delphi

10. Записная книжка на Delphi 7

11. Учебник по Delphi 7 для начинающих

12. Реферат по технологии приготовления пищи "Венгерская кухня"

13. Несколько рефератов по Исламу

14. "Камю", "Сартр", "Шопенгауэр", "Ясперс", "Фромм" (Рефераты, доклады по философии)

15. Реферат по информационным системам управления

16. Семь чудес света - древний мир, средние века и наше время (история цивилизации, реферат)

Папка для труда, А4.
Формат листов: А4. Материал: картон, текстиль. Товар в ассортименте, без возможности выбора! На фото представлен не весь ассортимент товара!
366 руб
Раздел: Папки-портфели, папки с наполнением
Карандаши цветные "Lyra Groove Slim", 12 цветов + точилка.
Карандаши с эргономичным захватом по всей длине. Диаметр грифеля 3,3 мм! Точилка. Уникальные карандаши с канавками! Запатентовано! Научите
540 руб
Раздел: 7-12 цветов
Набор чехлов для путешествий "Бон вояж".
В набор чехлов для путешествий входит 5 чехлов различного размера и назначения, в которые можно положить любые вещи, которые пригодятся
520 руб
Раздел: Чехлы для одежды

17. Реферат по книге Н. Цеда Дух самурая - дух Японии

18. Окно в мир евангельских истин. Пословицы и притчи в поэме Гоголя "Мертвые души"

19. Обзорный реферат по творчеству Ф.И. Тютчева

20. Космический телескоп GALEX – новое окно во Вселенную

21. Окно души и тела

22. Реферат - Физиология (Транспорт веществ через биологические мембраны)
23. США и Канада в АТР: набор рефератов
24. Взгляд из окна школьного кабинета на психологические, педагогические, организационные и другие проблемы

25. Реферат монографии А.А. Смирнова Проблемы психологии памяти

26. Око, глядящее в окно

27. Реферат кондитерское изделие

28. Реферат по статье Гадамера Неспособность к разговору

29. Реферат Евро

30. Реферат о прочитаной на немецком языке литературы

31. Реферат для выпускных экзаменов

32. Лесные пожары - реферат

Звуковой плакат "Учимся читать - читаем по слогам".
Представляем Вашему вниманию уникальную новинку — развивающие звуковые плакаты, которые содержат стихотворения, занимательные и
643 руб
Раздел: Электронные и звуковые плакаты
Сиденье для ванны (светло-голубое).
Выдерживает нагрузку до 200 кг. Располагается практически на уровне ванны, а не вставляется внутрь, что особенно важно для удобства людей
604 руб
Раздел: Горки, приспособления для купания
Набор детской складной мебели Ника "Маленькая принцесса".
В комплект входит стол и стул с мягким сиденьем и спинкой. Подходит для кормления, игр и обучения. Поверхность столешницы ламинированная с
1358 руб
Раздел: Наборы детской мебели

33. ДЫХАНИЕ - реферат за 9-й класс

34. Реферат по Мексике

35. Реферат по делопроизводству с вопросами: Подготовка документов к архивному хранению, Правила оформления реквизитов №№16, 19, 20, 22, Контракты (договоры)

36. Визуальное программирование в Delphi

37. Разработка DLL в Borland Delphi

38. Создание Web-приложений в среде Delphi
39. Delphi: работа с MS WORD
40. Увеличение области экрана с помощью Delphi

41. Обзор Палитры Delphi

42. Управление проектом Delphi

43. Программирование. Delphi

44. Oracle Power Objects

45. Программирование с помощью Delphi

46. Создание теста в Delphi

47. Проектування та розробка засобами Delphi 5 програмного забезпечення “Автоматизоване робоче місце менеджера

48. Delphi или Visual C++ - вот в чем вопрос

Набор детской посуды "Авто", 3 предмета.
Набор посуды для детей включает в себя три предмета: суповую тарелку, обеденную тарелку и кружку. Набор упакован в красочную, подарочную
397 руб
Раздел: Наборы для кормления
Диванчик раскладной "Кошечка".
Диван "Кошечка" - красивый, функциональный, надежный детский диван. Он способен украсить детскую комнату и может использоваться
2791 руб
Раздел: Прочие
Карандаши цветные "Triocolor", 24 цвета.
Трехгранная эргономичная форма корпуса. Яркие, насыщенные цвета, линии мягко ложатся на бумагу. Грифель устойчив к механическим
337 руб
Раздел: 13-24 цвета

49. OpenGL и Delphi на практике

50. Базы данных в Delphi

51. Шифрование в Delphi

52. Географические наименования — окна в прошлое

53. Перевод реферата "Acquaintance with geometry as one of the main goals of teaching mathematics to preschool children"

54. Игра "Мозайка" на Делфи (Delphi)
55. Об’єктно-орієнтоване програмування МП Delphi
56. Основы программирования в среде Delphi 7.0

57. Программирование в Delphi

58. Программирование на Delphi с алгоритмами и кодами

59. Работа с окнами

60. Работа с окнами приложений

61. Решение математических задач с помощью алгоритмического языка Turbo Pascal, Microsoft Excel, пакета MathCAD и разработка программ в среде Delphi

62. Середовище програмування Borland Delphi

63. Современные операционные системы и системное программирование в Delphi

64. Создание программы на языке Delphi 7.0

Деревянная рамка для картин, белая с золотом, 40x50 см.
Деревянная багетная рамка прекрасно дополнит любую картину, придаст ей законченный вид. Утонченная, изящная рамка, выполненная в
1078 руб
Раздел: Размер 40x50
Набор детской посуды "Корова", 3 предмета.
Набор посуды для детей включает в себя три предмета: суповую тарелку, обеденную тарелку и кружку. Набор упакован в красочную, подарочную
363 руб
Раздел: Наборы для кормления
Мозаика, 654 элемента.
Магнитная мозаика - это набор простейших геометрических фигур разных цветов, который позволяет детям создавать чудесные образы. Ваш
845 руб
Раздел: Магнитная

65. Створення таблиць за допомогою SQL-запитів в середовищі DELPHI

66. Типы данных в Object Pascal

67. Языка программирования Delphi. Разработка практических заданий

68. Реферат Политико-правовые взгляды М.М. Сперанского и Н.М. Карамзина

69. Особенности системы мотивации персонала ООО "Окна Саратова"


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.