Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2013, 13:54   #1
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию COM сервер - что должен вернуть property

Здравствуйте!
Подскажите можно ли узнать в COM сервере что должна вернуть property или function, через function Invoke или другую function

V : OleVariant; - это мой COM сервер;

Например:
Код:
var
 V : OleVariant;
 s : string;
 A : MyClass;
begin
 V := CreateOleObject('...');
 s := V.Item;
 A := V.Item;
end;
Мне нужно узнать что должна вернуть (тип данных или класс) property Item

Если происходит SET то через function Invoke, я могу узнать что предаётся в property Item.

Например:
Код:
var
 V : OleVariant;
 s : string;
 A : MyClass;
begin
 V := CreateOleObject('...');
 V.Item := s;
 V.Item := A;
end;
Мне нужен GET?

Последний раз редактировалось lexaltd; 05.12.2013 в 13:58.
lexaltd вне форума Ответить с цитированием
Старый 05.12.2013, 21:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему такое можно узнать только прочитав TLB библиотеки этого сервера. Не думаю что механика RTTI в СОМ технологии существует.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2013, 11:34   #3
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
По-моему такое можно узнать только прочитав TLB библиотеки этого сервера. Не думаю что механика RTTI в СОМ технологии существует.
Вы наверно не так меня поняли

Например:
Код:
var
 V : OleVariant;
 s : string;
 A : MyClass;
begin
 V := CreateOleObject('...');
 s := V.Item;
 A := V.Item;
end;
Мне нужно узнать в function Invoke когда происходит вызов property Item - s и A это переменая или класс.

Или хотябы узнать такая конструкция
Код:
s := V.Item;
или такая
Код:
V.Item.Add
lexaltd вне форума Ответить с цитированием
Старый 06.12.2013, 12:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

a: OleVariant;

a:=V.Item;

VarType(a), VarTypeAsText(VarType(a)) - не достаточно?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2013, 12:18   #5
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
a: OleVariant;

a:=V.Item;

VarType(a), VarTypeAsText(VarType(a)) - не достаточно?
Мне нужно в COM сервере (в моём COM сервере (OLE-automation) метод Позднего связывания) , узнать в function Invoke когда происходит вызов property Item - s и A это переменая или класс.

Грубо говоря нужно узнать в function Invoke или другой что должна вернуть Item , если такое возможно

Код:
var
 V : OleVariant;
 s : string;
 A : MyClass;
begin
 V := CreateOleObject('...');
 s := V.Item;
 A := V.Item;
end;
s и A это переменая или класс?

Или хотябы узнать такая конструкция

Код:
s := V.Item;
или такая

Код:
V.Item.Add

Последний раз редактировалось lexaltd; 06.12.2013 в 12:28.
lexaltd вне форума Ответить с цитированием
Старый 06.12.2013, 12:27   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

s и A это переменые, какого типа Item узнать можно только если знать заранее или просто проверять
а воще не понятно что вам надо, то сом ваш то вы не знаете...
eval вне форума Ответить с цитированием
Старый 06.12.2013, 12:44   #7
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
s и A это переменые, какого типа Item узнать можно только если знать заранее или просто проверять
а воще не понятно что вам надо, то сом ваш то вы не знаете...
Что проверять, где?

Мне нужно в COM сервере (в моём COM сервере (OLE-automation) метод Позднего связывания) , узнать в function Invoke когда происходит вызов GET property Item - s и A это переменая или класс.

Это происходит GET
Код:
var
 V : OleVariant;
 s : string;
 A : MyClass;
begin
 V := CreateOleObject('...');
//узнать такая конструкция
 s := V.Item;
//или такая
 V.Item.Add;
//или такая
 A := V.Item;
end;
lexaltd вне форума Ответить с цитированием
Старый 06.12.2013, 13:07   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

еще раз повторите а то с 5 раза не расслышали
eval вне форума Ответить с цитированием
Старый 06.12.2013, 14:06   #9
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
еще раз повторите а то с 5 раза не расслышали
Цитата:
Сообщение от eval Посмотреть сообщение
а воще не понятно что вам надо
Вот я и повторяю для таких "умников" как ты.

Если не знаеш ответа на вопрос, или не понимаеш - так воще иди дальше и не засоряй тему дебильными вопросами!
lexaltd вне форума Ответить с цитированием
Старый 06.12.2013, 14:16   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

для особо одаренных на вопрос
Цитата:
s и A это переменая или класс?
ответ был - s и A это переменые, если вам сие не досягаемо то тут только во фриланс

а далее у вас идет поток "умных" слов и все без смысла
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Notice: Trying to get property of non-object. для property of static property Jakethefish PHP 8 16.08.2011 16:09
какой выбрать протокол, если есть сервер в интернете, и клиент должен передать ему команды anyx Работа с сетью в Delphi 3 25.09.2009 23:13
Что должен знать программист? Maximxak Свободное общение 37 26.05.2009 22:41
Что должен знать системный администратор? veter_s_morya Свободное общение 14 04.08.2008 11:51