Главная » Статьи для тега "Delphi"

Создание контроллеров автоматизации

Добавлено Дата: 5 February, 2012 категория: Delphi

В Delphi  процессы управления серверами автоматизации из  приложений макси мально  упрощены. Но,  тем не менее, при  этом  обеспечивается высокая степень гиб кости  управления —  благодаря возможности раннего (с помощью интерфейсов)  или позднего (с использованием типов dispinterface или OleVariant) связывания.

Читать »

Создание сервера автоматизации

Добавлено Дата: 4 February, 2012 категория: Delphi

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

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

Читать »

Позднее и раннее связывание

Добавлено Дата: 4 February, 2012 категория: Delphi

Элементы автоматизации, которые рассматривались до сих пор в настоящей главе, работают  на   основе  подхода,   который  носит   название  позднего связывания   (late binding). В данном  случае  для вызова  необходимого метода  используется метод  In- voke() интерфейса IDispatch. Под поздним связыванием подразумевается, что вы зов метода невозможен до момента запуска программы, поскольку  необходимый адрес просто неизвестен. Во время  компиляции вызов  метода  автоматизации имеет  вид вы зова метода  IDispatch.Invoke() с соответствующими параметрами, и лишь во вре мя  выполнения программы метод  Invoke() вызовет  указанный метод  автоматиза ции.  При  вызове метода  автоматизации с помощью типа  Delphi  Variant или  Ole- Variant также   используется  позднее  связывание,  поскольку   транслятор  Delphi сначала  должен  будет организовать вызов  метод  IDispatch.GetIDsOfNames() для преобразования имени заданного метода в его параметр DispID, а затем уже реализо вать вызов  указанного метода  с помощью вызова  метода  IDispatch.Invoke() с по лученным параметром DispID.

Читать »

Распределенная  модель COM

Добавлено Дата: 4 February, 2012 категория: Delphi

Предложенная в Windows NT 4 модель  распределенной  COM (DCOM —  Distributed COM)  предоставляет средства доступа  к объектам COM,  расположенным на  других компьютерах в сети.  Кроме  создания удаленных  объектов, модель  DCOM  предостав ляет  также  простые средства обеспечения безопасности, позволяющие серверам оп ределять, какие  клиенты имеют  право  создавать экземпляры серверов и какие  опера ции  они  могут  выполнять. Операционные  системы Windows NT 4 и  Windows 98 со держат встроенную поддержку модели DCOM, а для Windows 95 необходимо загрузить с  Web сайта   корпорации  Microsoft (http://www.microsoft.com)  специальное  до полнение, которое будет выполнять функции клиента DCOM.

Читать »

COM и Object Pascal

Добавлено Дата: 3 February, 2012 категория: Delphi

После  краткого обзора основных концепций и терминологии технологий COM, ActiveX и OLE можно  переходить к рассмотрению способов реализации этих  концеп ций в Delphi. В настоящем разделе более  детально рассматривается как сама техноло гия COM, так и ее согласование с языком Object  Pascal и библиотекой VCL.

Читать »

Версии пакетов

Добавлено Дата: 2 February, 2012 категория: Delphi

Версию (versioning) пакета  часто  понимают неправильно. похожи на версии модулей. Другими  словами, любой  пакет  приложения должен  быть скомпи лирован с использованием той  же версии Delphi, что  и само приложение. Таким  об разом, пакет,  написанный в Delphi 6, нельзя  использовать с приложением, созданным в Delphi  5. Разработчики компании Borland обычно называют версию пакета  базой кода (code base). Поэтому  пакет,  созданный в Delphi 6, можно  назвать написанным на базе кода 6.0. Эту идею можно отразить в соглашении об именах, используемых для файлов пакетов.

Читать »

Сценарии разработки пакетов

Добавлено Дата: 2 February, 2012 категория: Delphi

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

Сценарий 1. Пакеты разработки и времени выполнения для компонентов

Читать »

Объекты Delphi

Добавлено Дата: 1 February, 2012 категория: Delphi

Объекты в Object  Pascal можно  представить как записи, которые помимо данных содержат процедуры и функции. Но поскольку  объектная модель Delphi детально обсуждается в следующем  разделе этой  главы,  здесь остановимся только  на синтак сисе объявления объектов Object Pascal. Объект объявляется таким образом:

Читать »

Пакеты Delphi

Добавлено Дата: 1 February, 2012 категория: Delphi

Для чего предназначены пакеты?

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

Сокращение размера кода

Самой  главной причиной использования пакетов является стремление уменьшить размер приложений и библиотек DLL. Delphi  поставляется в виде  нескольких паке тов, среди  которых по логическим признакам распределены компоненты библиотеки VCL. Создаваемые приложения можно  компилировать с использованием этих  уже су ществующих пакетов Delphi.

Читать »

Архитектура CLX

Добавлено Дата: 30 January, 2012 категория: Delphi

Итак, библиотека VisualCLX состоит из классов  Object  Pascal, по сути являющихся оболочками классов  библиотеки Qt. Это очень  похоже на то, как классы  библиотеки VCL инкапсулируют стандартные интерфейсы  API и элементы управления Windows. Одной из главных  целей  создания CLX было  максимальное упрощение переноса су ществующих   приложений VCL в архитектуру  CLX.  В результате  иерархия классов CLX имеет  общие  черты с иерархией классов  VCL (рис. 13.1 и 13.2). Темно серые прямоугольники на рис. 13.1 соответствуют основным базовым  классам VCL.

Читать »

Разработка компонентов CLX

Добавлено Дата: 30 January, 2012 категория: Delphi

Что такое CLX?

CLX —   это  аббревиатура термина  Component Library for Cross Platform (библиотека межплатформенных компонентов), который был впервые употреблен в новом  инст рументе  ускоренной разработки приложений Kylix для Linux.  Но библиотека CLX не является просто аналогом VCL для Linux.  Архитектура CLX также  используется  и в Delphi 6, что является основанием для разработки межплатформенных приложений с использованием Delphi  6 и Kylix.

Читать »

Добавление форм в палитру компонентов

Добавлено Дата: 24 January, 2012 категория: Delphi

Добавление форм  в хранилище объектов (Object Repository) —  удобный  способ  по следующей  работы с ними.  Но  иногда  разрабатывают форму,  которую  приходится часто  использовать и которая не предполагает наследования и внесения дополни тельных функций. В этом  случае Delphi  6 позволяет использовать такие  формы, как компоненты  палитры  компонентов.  В  частности,  компоненты  TFontDialog и TOpenDialog — примеры форм, доступных  в палитре компонентов. В действительно сти эти диалоговые окна не являются формами Delphi  — они содержатся в библиотеке CommDlg.dll, но, тем не менее,  идея остается той же.

Читать »

Создание пиктограммы компонента

Добавлено Дата: 23 January, 2012 категория: Delphi

Ни  один  пользовательский компонент не обходится без  собственной пиктограммы (icon) в палитре компонентов. Для  создания пиктограммы используется  встроенный графический редактор Delphi  (Image Editor) или  любой  другой  редактор растровых изо бражений. Создайте рисунок  размером 24х24 пикселя и нарисуйте подходящее изобра жение, а затем сохраните его в формате файла  DCR. Файл с расширением .dcr — не что иное, как переименованный файл  .RES. Следовательно, если сохранить пиктограмму в файле .RES, то достаточно будет просто изменить его расширение на .dcr.

Читать »

Проверка компонента

Добавлено Дата: 23 January, 2012 категория: Delphi

Несмотря на весь оптимизм и радость, вызванные завершением создания компо нента, не спешите добавлять вновь созданный компонент в палитру  компонентов, по ка он не будет тщательно отлажен. Следует  обязательно провести предварительную проверку, создав проект, в котором используется динамический экземпляр нового компонента. Дело в том,  что  во время  разработки компонент находится в среде  IDE. Если в нем содержится ошибка, приводящая к сбою в памяти, то это может,  ко всему прочему, привести к зависанию самой  среды  разработки Delphi. В листинге 11.9 со держится модуль,  предназначенный для  проверки компонента TddgExtendedMemo, создание которого описано в настоящей главе  далее.  Этот  проект находится на при лагаемом CD под именем  TestEMem.dpr.

Читать »

Регистрация компонента

Добавлено Дата: 22 January, 2012 категория: Delphi

В процессе регистрации компонент помещается в палитру  компонентов Delphi. Если для разработки компонента использовалось окно New Component, то для регистрации ни чего предпринимать не нужно — Delphi сама создаст необходимый код. Если же компонент написан вручную,  то в модуль созданного компонента необходимо включить процедуру Register().

Читать »