![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
cardinal |
|
||||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Добавление новых элементов управления необходимо в приложениях, в которых заранее не известно сколько и чего потребуется, поэтому при программировании желательно предусмотреть возможность нехватки контролов, об этом и пойдет речь в данной статье.
Добавление новых элементов управления необходимо в приложениях, в которых заранее не известно сколько и чего потребуется, поэтому при программировании желательно предусмотреть возможность нехватки контролов, об этом и пойдет речь в данной статье. Есть несколько способов создания массива элементов управления, например такой: вы помещаете на форму контрол, при этом устанавливая его Index = 0, что автоматически создает массив элементов управления, где этот контрол становиться первым. потом вы добавляете контролы командой Load {Control}(Index As Integer) Пример: Создаем простой exe проект и натягиваем на него кнопку, ставим Index=0 и пишем следующий код:
Так мы создаем последовательность кнопок, которая увеличивается при каждом нажатии. Но мало пользы было бы от такой системы добавления если бы нельзя было бы удалять контролы. Делается это соответственно командой Unload{control}(Index As Integer) Пример; На нашу форму из предыдущего примера поместим еще одну кнопку, и добавим такой код:
Но сразу предупреждаю, что НЕЛЬЗЯ удалить элемент добавленный во время проектирования формы!!!! Поэтому будьте аккуратны. Есть и второй способ добавления контролов на форму. Он заключается в применении метода Add, который имеется в семействе Controls. Этот способ гораздо лучше, т.к. вам не обязательно создавать первые элементы в массивах. Все уже будет создаваться непосредственно при работе пользователя с программой. Вы можете полностью задать изменение интерфейса программы только лишь добавив соответствующий код. Выглядит использование этого метода так: Object.Add (ProgID,Name,Container) Object - Объект в который вы добавляете контролы (хотя обычно говорят для которого добавляются объекты). ProgID - описатель нового элемента управления Name - имя нового элемента Container - ссылка на контейнер для нового элемента, этот параметр можно пропускать. Использование этого метода хорошо тем, что для каждого объекта вы можете задавать и код обработки событий, т.е эти контролы могут быть отдельными, а не элементами массива, что значительно удобнее. Пример:
Удалить элемент управления легко:
Таким образом вы можете добавлять любой элемент управления, назначать ему обработку событий. В общем все хорошо. Список интендификаторов стандартных элементов управления: 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 контрол, который требует лицензионных ключей, то не забудьте добавить и ключ. Динамическое добавление контролов - мощный способ изменения ваших приложений в процессе работы, наиболее удобен метод Add, а метод load применяется обычно при добавлении статических объектов, когда и обрабатывать ничего не надо. Ответ взят на: www.vbstreets.ru -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |