Главная страница
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.026 c
1-6016
Tommy
2004-02-19 10:51
2004.03.03
Имеется поток,в нем инициализирую и запускаю еше один ...


1-6041
Miwa
2004-02-19 01:48
2004.03.03
Лог: как оптимально считать запись, состоящую из 2 строк...


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


9-5935
Flyer
2003-08-18 13:58
2004.03.03
Проверка звука


1-6067
Александр1
2004-02-21 13:46
2004.03.03
Есть ли компонент аналогичный StringGrid