Динамическое создание элементов управления

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
^^()uSe
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 29.05.2003 (Чт) 14:31

Динамическое создание элементов управления

Сообщение ^^()uSe » 29.05.2003 (Чт) 14:33

Как можно динамически создать элемент управления,
предварительно не подключая его в компонентах.
Возможно ли вообще такое?
У меня есть скомпилированный .ocx, который имеет
пару свойств и один метод.
Можно ли, зная его программное имя, добавить его на форму?
Я пишу Set mucFoo = Me.Controls.Add(“FOO.ucFoo”, “FooControl”, Frame1)
объект создается, но определенные методы и свойства недоступны L.
Если его предварительно подключить в компонентах – все работает нормально.

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 29.05.2003 (Чт) 18:24

...ууу...поиск по форуму.... гоняли такие темы... 8)
вот подходящая статья... :twisted:
http://www.azbukavb.narod.ru/teorie/ArraysA.html

:roll:
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.06.2003 (Пн) 11:09

Автору темы - смени ник, или, согласно Правилам забаним мы тебя с форума ;)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 03.06.2003 (Вт) 9:35

2 RayShade

Так это он так MOUSE пишет....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.06.2003 (Вт) 10:48

Это не мои проблемы, что он пишет :) По правилу в нике не должно быть столько небуквенных символов подряд :)

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 03.06.2003 (Вт) 13:05

А если абстрагироваться от имен :-), то надо метод Add юзать.
Выглядит использование этого метода так: Object.Add (ProgID,Name,Container)
Object - Объект в который вы добавляете контролы (хотя обычно говорят для которого добавляются объекты).
ProgID - описатель нового элемента управления
Name - имя нового элемента
Container - ссылка на контейнер для нового элемента, этот параметр можно пропускать.
Использование этого метода хорошо тем, что для каждого объекта вы можете задавать и код обработки событий, т.е эти контролы могут быть отдельными, а не элементами массива, что значительно удобнее.
Пример:
Private WithEvents NewButton As CommandButton 'Сообщаем системе что хотим использовать обработчик событий с кнопкой
Private Sub NewButton_Click() 'Код обработки события нажатия на кнопку
MsgBox "Вы нажали на новую кнопку"
End Sub
Private Sub Form_Click()
Set NewButton = Controls.Add("VB.CommandButton", "NewButton") 'при клике по форме появляется новая кнопка
NewButton.Visible = True
NewButton.Height = 1000
NewButton.Width = 1000
NewButton.Top = 0
NewButton.Left = 0
NewButton.Caption = "Нажми на меня!!!!"
End Sub
Удалить элемент управления легко:
Form1.Controls.Remove "NewButton"
Таким образом вы можете добавлять любой элемент управления, назначать ему обработку событий. В общем все хорошо.
Список интендификаторов стандартных элементов управления:
VB.ComandButton - Кнопка
VB.ComboBox - Раскрывающийся список
VB.DirListBox - Список директорий
VB.DriveListBox - Список устройств
VB.FileListBox - Список файлов
VB.Form - Форма
VB.Frame - Рамка
VB.HScrollBar - Горизонтальная полоса прокрутки
VB.Image - Изображение
VB.Label - Надпись
VB.Line -Линия
VB.ListBox - Список
VB.MDIForm - MDI форма
VB.Menu - Меню
VB.OLE - OLE Компонент
VB.OptionButton - Выбор
VB.PictureBox - Картинка
VB.Shape - Окружность
VB.TextBox - Текстовое окно
VB.UserControl - Пользовательский контрол
VB.UserDocument - Пользовательский документ
VB.VScrollBar - Вертикальная полоса прокрутки
VB.Timer - Таймер
И это еще не все, но больше не помню. Да вы и сами можете в Object Browser посмотреть в модуле VB. Да и еще, если вы добавляете ActiveX контрол, который требует лицензионных ключей, то не забудьте добавить и ключ.
Откуда я это взял уже не помню :roll:
Понимаешь? (с)Б.Ельцин.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 03.06.2003 (Вт) 13:34


RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.06.2003 (Вт) 13:38

Вообще вся тема эта - сплошной оффтопик! :)

Ищите по форуму - это уже обсуждалось триста раз. Читайте правила, в общем.


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

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

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

    TopList