С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 73

Динамические контролы

27.01.2009, 17:51. Показов 1746. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В ActiveX DLL кладу Юзер контрол, в него набиваю:
Code
1
2
3
Sub foo()
    MsgBox 'Yoy!'
End Sub
В основном проекте пишу:
Code
1
2
3
4
...
    Form1.Controls.Add 'Имя_DLL.Контрол', Control
    Control.foo
...
На последней строке пишет, что метод не поддерживается. Почему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2009, 17:51
Ответы с готовыми решениями:

Xp контролы
Подскажите пожалуйста, скачал xp контролы они были в формате setup.exe, попробывал установить, вроде установились, но при запуске бейсика,...

Как можно синхронизировать контролы?
На форме есть несколько контролов. Нужно чтобы при изменении в одном из контролов произошли изменения и в других. Вот упрощенный пример:...

Как перечислить контролы во фрейме?
Сделал вот так: Option Explicit Private Sub Form_Load() Dim Ctl As Control Dim Ctl_2 As Control Dim Btn...

10
0 / 0 / 0
Регистрация: 19.02.2008
Сообщений: 25
12.02.2009, 10:03
Привет.

Все потому, что ДЛЛ не может содержать Юзер контролы являющиеся Public.

Для этого существуют проекты типа ActiveX Control.
0
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 73
14.02.2009, 09:49  [ТС]
Но ведь контрол создается, только моих методов у него нет!
0
Vita
16.02.2009, 16:41
Code
1
2
3
  Dim x As Object
  Set x = Form1.Controls.Add('Имя_DLL.Контрол', 'как-то')
  x.foo
0 / 0 / 0
Регистрация: 19.02.2008
Сообщений: 25
16.02.2009, 19:00
Доброго времени суток.

Я конечно дико извеняюсь, но по моему, это невозможно. Может пришлете мне примерчик такой реализации?
0
Vita
17.02.2009, 10:09
Code
1
2
3
4
5
6
7
8
9
Private Sub Form_Load()
  Dim x As Variant
'  Dim x As Object
'  Dim x As Control
'  Dim x As CommandButton
  Set x = Controls.Add('VB.CommandButton', 'xxx')
  x.Visible = True
  x.Move 100, 100
End Sub
Появится кнопка.
0 / 0 / 0
Регистрация: 19.02.2008
Сообщений: 25
17.02.2009, 11:19
Доброго времени суток.

Это конечно очень интересно, но это использование стандартного контрола.
А попробуй сделать так со своим контролом, самописным, лежащим во внешней ДЛЛ.

?
0
Vita
17.02.2009, 13:45
WestAdmin:
Ну право недоверчивый ты!
Code
1
2
3
4
5
Private Sub Form_Load()
  Dim x As Object
  Set x = Controls.Add('ViControl.UserControl1', 'xxx')
  x.Visible = True
End Sub
ViControl - это обычный UserControl контрол, без наворотов и одной Label на нем. Никаких ссылок на ViControl в проекте с Form_Load нет, используется только лишь имя 'ViControl.UserControl1'.
0 / 0 / 0
Регистрация: 19.02.2008
Сообщений: 25
17.02.2009, 14:20
Доброго времени суток.

Зри в корень!
т.е. прочитай первое сообшение!

Речь идет о DLL а не про OCX!
С ocx все понятно. Я ж тоже не полный профан!
0
Vita
17.02.2009, 14:45
Я ориентировался на ответ P@Ssword
'Но ведь контрол создается, только моих методов у него нет!'
Т.е. контрол создается. Тогда доступ к нему должен идти через Late Binding, через Object.

0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 73
21.02.2009, 08:26  [ТС]
2 Vita

Я в постах не видел вызова процедур. Они точно работают?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2009, 08:26
Помогаю со студенческими работами здесь

Контролы для работы с моделями из 3d max'a?
Есть ли какие-нибудь контролы для работы с моделями из 3d max'a?

Контролы в Windows XP и соответсвие текущей теме.
Может кто-нибудь знает почему контролы в написанной на VB6 программе не соответсвуют выбранной теме Windows XP, а воспроизводятся в...

Найти внутренне окна/контролы приложения
Народ помогите чутка, какими функциями добратся до дочерних окон/контролов (в том числе скрытых) приложения? Пробовал функцию...

Нужно помещать данные из ASP в контролы на форме
Создал несколько нестандартных контролов для работы с ASP. Затем помещаю их на форму, которую также компилирую, как ocx. Теперь стоит...

НА XP при запуске программы все контролы не XP'шные.
U menia Windows XP. Kogda zapuskaiu VB programmi, to vse kontrols(krome nekotoris, kakih tochno ne pomniu) ne XP'shnie. Chto delat`, ne...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru