Получение списка свойств объекта

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

Получение списка свойств объекта

Сообщение zHackLeX » 24.04.2005 (Вс) 18:33

Вообще-то для этого есть TlbInf32, но по заявлению какого-то
программиста из команды vb6
"Нельзя получить свойства объекта, созданного в непубличном модуле.
В частности, нельзя получить список свойств/методов формы элемента ActiveX.

Отсюда два способа решения.
1) Получения списка свойств на более низком уровне.
Как такое можно провернуть?


2) Создание ПУБЛИЧНОГО МОДУЛЯ ФОРМЫ в ОСХ.
Все формы классифицируются как Private Object Module.
Вопрос в том, как переделать форму в Public Object Module.

Тогда первый вопрос снимается сам собой. Опять же, только частично, потому что я планирую получать список свойств/методов не только для формы ОСХа, но и для его родителя, или любого другого объекта, ссылка на который помещена в переменную, хранящуюся в Control'e.
There is no knowledge that is not power...

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

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 25.04.2005 (Пн) 17:23

2)ни как! Ну если сильно важно, то вообще-то можно передавать ссылку на форму в другую программу, используя объявление as Object.
1) Про IDispatch слыхали? Так у него есть такая функция GetInfo или как-то так...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение zHackLeX » 25.04.2005 (Пн) 19:34

Про IDispatch мы слыхали О-очень мало.
Про функцию GetInfo... Какую, простите?


2) Жаль.
ЖАЛЬ!!!

А насчёт диспатча - мне что, объявлять общую переменную как IDispatch?
There is no knowledge that is not power...

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

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 25.04.2005 (Пн) 19:37

zHackLeX писал(а):А насчёт диспатча - мне что, объявлять общую переменную как IDispatch?

Код: Выделить всё
Dim A as IDispatch

Нет BASIC Вы не провидете :D

Тебе поможет это:

http://bbs.vbstreets.ru/viewtopic.php?t=9313
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение zHackLeX » 28.04.2005 (Чт) 12:05

Не помогло.

:twisted:

Object does not support this action.
There is no knowledge that is not power...

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

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.04.2005 (Чт) 12:47

Что именно за action? Где ты такую ошибку надыбал???
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение zHackLeX » 28.04.2005 (Чт) 21:09

Пошаговая инструкция к получению вышеозначенной ошибки:

1) Создаём ОСХ
2) Создаём форму в ОСХ,
3) Создаём публичную переменную kOB As Object
4) Присваиваем Set kOB = New Form1
5) КОМПИЛИРУЕМ ОСХ. (В некомпилированном ошибки нет)
6) Создаём ЕХЕ.
7) Подключаем UserControl1 (Это, типа, наш контрол с ссылкой на форму)
8) В ЕХЕ:
Пытаемся с помощью TLBINF32 получить список методов и свойств объекта UserControl1.kOB, на чём благополучно обламываемся с указанным мной выше сообщением.
Я использовал и ClassInfoFromObject, и InterfaceInfoFromObject - один... ... один бит.
Без разницы, то есть.
There is no knowledge that is not power...

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


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68

    TopList