Адрес этой странички:
http://d1cv8.narod.ru/top_003/d1cv8_20070827_001/d1cv8_20070827_001.htm Дата: 27.08.2007 Интернет-приложение к книге "Delphi и 1С:Предприятие.Программирование информационного обмена" |
Глава 3. Подключение к
1С.
Создание Delphi-компонента, реализующего
функционал подключения к 1Cv7.
В главе 3 книги (стр. 19-25) был рассмотрен пример подключения
из внешнего приложения к
системе 1Cv7 в режиме OLE Automation.
Попробуем создать Delphi-компонент, решающий эту же
задачу.
Шаг N 1
Запустим Delphi и создадим
новый пакет.
Для этого нужно выбрать пункт меню : File
-> New.
В открывшемся диалоговом окне перейти на вкладку
New ,
выбрать значок Package
и нажать кнопку OK (рис. 1).
Рис.1 Создание нового
Package
Сохраним созданный пакет под именем sp1Cv7_OLE (или любым другим по желанию) в какую-нибудь папку (рис.2).
Рис.2 Сохранение созданного пакета.
В контексте этого пакета создадим наш компонент, для чего нужно
нажать на кнопку "Add" (рис.2)
На экране появится диалоговое окно, где нужно перейти на
вкладку "New Component" (рис.3)
для выбора "предка" нового компонента и вкладки палитры Delphi-компонентов
(где должен быть размещен новый компонент).
Рис.3 Диалоговое окно выбора "предка" для нового компонента.
Наш компонент будет создан, как наследник стандартного
Delphi-компонента
TComponent.
Теперь нужно нажать на кнопку "..." (выбор имени файла модуля
компонента), рис. 4
и сохранить модуль компонента (можно туда же, где и модуль пакета).
Рис.4 Сохранение модуля компонента в файл.
Отметим, что в данном случае имя модуля :
ConnectTo1Cv7.pas
На рис.5 показано содержание пакета sp1Cv7_OLE.dpk после создания нового компонента.
Рис.5 Содержание package
sp1Cv7_OLE.dpk.
Теперь нужно сохранить и закрыть созданный нами пакет sp1Cv7_OLE.dpk.
С помощью программы Image Editor (входящим в состав Delphi-5) :
Рис.6 Пиктограмма
программы Image Editor.
Создадим BitMap (картинку),
которая будет отображать наш компонент
в палитре компонентов Delphi (рис.7).
Рис.7 "Картинка"-образ,
который будет отображать наш компонент
в палитре компонетов Delphi.
Здесь нужно отметить следующее :
Созданный BitMap должен иметь такое же имя
(заглавными символами),
что и имя класса нового компонента (в нашем случае:
TCONNECTTO1CV7).
А имя dcr-файла (в контексте которого создается
BitMap) должно быть таким же,
как и имя модуля компонента (без учета расширения, ест-нно).
В нашем случае : ConnectTo1Cv7.dcr
.
С помощью Notepad.exe (или любого другого текстового
редактора) откроем модуль пакета :
sp1Cv7_OLE.dpk
и добавим ссылку на созданный dcr-файл (строка красным
цветом) :
package sp1Cv7_OLE;
{$R *.RES}
{$R
'ConnectTo1Cv7.dcr'}
{$ALIGN ON}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}
requires
vcl50;
contains
ConnectTo1Cv7 in 'ConnectTo1Cv7.pas';
end.
Сохраним изменения в тот же файл : sp1Cv7_OLE.dpk
И откроем пакет sp1Cv7_OLE.dpk из меню Delphi (рис.8).
Рис.8 Содержание package sp1Cv7_OLE.dpk.
Чтобы открыть модуль созданного компонента - сделаем двойной
щелчок мышкой
по строке с файлом :
ConnectTo1Cv7.pas .
Ниже представлен текст, автоматически сформированный средой
Delphi, для "нашего" компонента :
unit ConnectTo1Cv7;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs;
type
TConnectTo1Cv7 = class(TComponent)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('1Cv7', [TConnectTo1Cv7]);
end;
end.
Теперь, скомпилируем наш пакет (кнопка "Compile"), рис.9 :
Рис.9 Компиляция пакета
sp1Cv7_OLE.dpk.
И установим (переустановим) компоненты пакета (по нажатию на кнопку "Install"), рис. 10.
Рис.10 Установка (переустановка) компонентов
пакета sp1Cv7_OLE.dpk
в палитру компонентов Delphi.
В случае успеха (указанных выше операций) - в палитре
Delphi-компонентов
появится новая вкладка (в нашем случае) :
Рис.11 Новая вкладка
в палитре компонентов Delphi.
И на этой вкладке - пиктограмма "нашего" компонента :
Рис.12 Отображение нового компонента
в палитре компонентов Delphi.
В принципе - это базовые операции для
создания любого нового компонента (или набора компонент) и объединения их в
единый пакет.
Более подробно о создании собственных компонентов в среде Delphi
можно прочитать в специальной литературе (или в интернете).
Далее, собственно, начинается работа программиста, который должен "наделить" новый компонент свойствами, методами и событиями, реализующими заданный функционал.
Продолжение -
Шаг N 2.