Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

IDispatch реализация без TypeLibrary. Возможно?   Найти похожие ветки 

 
Opryshok ©   (2004-02-19 18:36) [0]

Здрасти!
Делаю File->New->Other->ActiveX->Aotomation Object.
Имплементирую методы. Все работает.
Потом мне возникла необходимость использовать этот класс(implementation class) в дугой программе (тоже на Delphi).

Возникла трудность:
Нужно в оба проекта добавлять TypeLib. Не то чтоб лень набивать методы, но неудобно синхонизировать изменения.

Может что посоветуете?


 
Владислав ©   (2004-02-19 18:44) [1]

Можно скопировать файл tlb и подправить в нем все, что нужно.
У меня два таких проекта условной компиляцией "разрулены". Все замечательно работает. А "набивать" мне тоже было лень :)


 
just me   (2004-02-19 19:10) [2]

Это стандартное решение - создать библиотеку типов отдельно, а потом включать ее во все проекты, где это нужно. Например, при построении на базе СОМ системы подгружаемых модулей для хост-апликации


 
Владислав ©   (2004-02-19 19:13) [3]

> just me (19.02.04 19:10) [2]

Если я правильно понял автора, конечно, не совсем стандартное. Интерфейсы (VMT, если можно так выразиться) одни и те же, но вот COM объекты совсем разные. И Class ID разные, и их имена.


 
just me   (2004-02-19 19:59) [4]

Отчего же! Как раз стандартное! Мне нужно несколько СОМ-объектов с ClassID разными, именами разными, но ведущими себя одинаково, например, плагинов. Интерфейс подключения к хосту и взаимодействия с ним у всех один. В MS для этого даже придумали такую штуку, как COM Component Categories


 
just me   (2004-02-19 20:00) [5]

Отчего же! Как раз стандартное! Мне нужно несколько СОМ-объектов с ClassID разными, именами разными, но ведущими себя одинаково, например, плагинов. Интерфейс подключения к хосту и взаимодействия с ним у всех один. В MS для этого даже придумали такую штуку, как COM Component Categories


 
Digitman ©   (2004-02-20 16:32) [6]


> неудобно синхонизировать изменения


их и не надо синхронизировать

проект, реализующий сервер автоматизации, при каждом изменении генерирует собственно tlb и тут же обновляет XXX_tlb.pas, который существует в единственном экз-ре, на который в своих uses ссылаются прочие проекты (контроллеры автоматизации)

любое изменение в XXX_tlb.pas при перекомпиляции проектов-контроллеров даст о себе знать, напоример, ошибкой компиляции, что быстро исправляется соотв.правкой исх.текста приложения-контроллера


 
Serginio666   (2004-02-20 16:56) [7]

Сколько угодно. Например 1С или например TSocketConnection.
В данном случае очень удобно использовать DispInterface



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-6025
Layner
2004-02-19 09:29
2004.03.03
Есть 2й массив, X на Y, как узнать сумму одного столбца?


1-6139
Delphi_Child
2004-02-19 15:46
2004.03.03
Stream и Memory. Проблеммы.


11-6002
chum
2003-06-17 10:59
2004.03.03
Не найден файл exptintf.dcu


6-6165
Asail
2003-12-25 16:02
2004.03.03
Как вытащить инфу из домена?


1-6122
Alex_DM
2004-01-23 13:42
2004.03.03
Как программно задать размеры и положение открываемого окна IE?