TypeLib Information

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

TypeLib Information

Сообщение zHackLeX » 29.03.2005 (Вт) 11:57

У меня в ОСХ'е есть окно, которое, понятное дело, идентифицируется как private object module, и приватная же объектная переменная, эту форму содержащая.
Имеется также ПУБЛИЧНАЯ переменная (As Object), содержащая ссылку на этот объект (то есть, такая же, как и приватная, но - As Object)

Внимание, вопрос.
В библиотеке TLBINF32.dll есть функция InterfaceInfoFromObject.
Почему я не могу получить ни одного члена коллекции Members, когда ОСХ скомпилирован и подключен к внешнему ЕХЕшнику?
Он пишет, что Object does not support this action.
Обращение:

Код: Выделить всё

    Dim mem as MemberInfo
    Dim TInfo as InterfaceInfo
    Set TInfo = InterfaceInfoFromObject(MyOCX1.Form1ref)
    For Each mem in TInfo 'Вот здесь ошибка
        List1.Additem mem.Name
    Next



Можно ли получить информацию обо ВСЕХ методах и свойствах ДАННОГО ОБЪЕКТА, имея только ссылку на него в объектной переменной?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 31.03.2005 (Чт) 10:15

Может
Set TInfo = InterfaceInfoFromObject(MyOCX1.Object.Form1ref)
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 01.04.2005 (Пт) 10:44

Так ясно.
А если картина такая:

Форма приватная в ОСХ
-------------------------------
ОСХ-элемент |- Метод GetFormMethods,
-------------------------------
возвращающий (в теории) список всех методов.
В самом методе GetFormMethods есть объявление:

_________________________________________________

Код: Выделить всё
Private Dialog1 as Form1
Public Function GetFormMethods() as Variant
    Dim mem as MemberInfo
    Dim TInfo as InterfaceInfo
    Set TInfo = InterfaceInfoFromObject(Dialog1)
    .....

_________________________________________________

А любое обращение к коллекции members ведёт к сбою с ошибкой.
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 10.04.2005 (Вс) 14:14

Да, и почему в НЕСКОМПИЛИРОВАННОЙ ВЕРСИИ ВСЕ РАБОТАЕТ??

То есть, в группе проектов, куда входит ОСХ всё тип-топ,
а компилированный осх не прёт?

Как быть?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 160

    TopList