Главная страница
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.019 c
14-6185
jen
2004-02-11 16:26
2004.03.03
Люди, помогите, какой-то бред со СТРОКАМИ!!!


1-6156
Digitman
2004-02-19 12:16
2004.03.03
TListView.OnDeletion


4-6271
Rimd
2003-12-25 16:00
2004.03.03
DrawFrameControl и StringGrid


6-6178
RaPToR_1
2003-12-26 21:46
2004.03.03
ping


14-6225
werr
2004-02-11 12:09
2004.03.03
вопрос по W 2k