Form.contrtols.add ...

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

Form.contrtols.add ...

Сообщение ANDLL » 12.10.2003 (Вс) 15:57

Такая ситуация...
Создаем project1 типа ActiveXControl с элементом управления UserControl1. Добавляем в код контрола следующее:

Public Sub Sub1()
Beep
End Sub


компилируем и закрываем.

Далее создаем Project2 типа StandardEXE с формой Form2.
В коде формы пишем:

Private Sub Form_Load()
Form2.Controls.Add "Project1.UserControl1", "Control1"
'Здесь ошибки не возникает...
Form2.Controls("Control1").sub1
'А здесь Object doesn't support this property or method(!)
End Sub


Если в project2 добавить ссылку(через Ctrl+T) на Project1 ошибка изчезает :!:
Что это значит и как с ним бороться :?: :?: :?:

Заранее спасибо :arrow:
У вас нет доступа для просмотра вложений в этом сообщении.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.10.2003 (Вс) 19:11

Не знаю... Всё работает!
Нет меня больше

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

Сообщение ANDLL » 13.10.2003 (Пн) 18:06

Видимо A.A.Z. чего-то недопонял...

Просто компилируем project1, затем запускаем project2(который находится в другой папкке). При этом ссылку на project1 в project2 нету.

И что все работает???

Слабо верится, ибо у себя проверял несколько раз... :roll:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 13.10.2003 (Пн) 18:53

Да! Чесслово! :!:
Нет меня больше

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 13.10.2003 (Пн) 18:55

Ты его в "компоненты" добавил?
Нет меня больше

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

Сообщение ANDLL » 13.10.2003 (Пн) 20:46

В какие "компоненты" :?:
В системе компонент зарегистрирован, но в спсике Ctrl+T(Components) project1 не отмечен.

Насколько я понимаю используя механизи динамического (с использованием метода Form.Controls.Add) создания элементов ссылка на этот элемент на этапе разработки необязательна.

Кстати, элемент добавляется на форму, даже при отсутсвии ссылки. Проблемы возникают именно при обращении к нестандартному методу Sub1().

По-моему это какой-то глюк в VB :wink:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 13.10.2003 (Пн) 20:56

Не знаю. Когда галочка в Project->Components стоит, всё ОК, а когда нет - возникает ошибка там, где было сказано...
Нет меня больше

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

Сообщение ANDLL » 15.10.2003 (Ср) 17:50

Хорошо..................

Как можно динамически добавить контрол на форму???

Неужели нет никакого способа добавить контрол, зная его CLSID???

Очень слабо верится :roll:

Заранее спасибо

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

Сообщение ANDLL » 09.12.2003 (Вт) 19:13

Я понял!!!
Как говорится лучше поздно, чем никогда :)
Итак:
Код: Выделить всё
Form2.Controls("Control1").object.sub1

Так, может кому понадобиться...


Вернуться в Компоненты

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

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

    TopList