[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Объекты VB (Объекты VB)
Объекты VB
ilimДата: Пятница, 04.02.2011, 05:30 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Наверное каждый встречался с проблеммой, когда много объектов, а надо одним разом поменть у них какое нибуть свойство. А писать код для каждого объекта очень долго, да и кода много получается. Очень неудобно. Как же быть? Да очень просто, у каждого объекта есть свойство Index, вот оно - то нам и пригодится. Сделаем простенькую программку:
На форму кинь 5 кнопок. У первой кнопки свойство Index = 0, у 2ой Index = 1, у 3ей Index = 2, у 4ой Index = 3, у 5ой Index = 4. Теперь переименуй эти кнопки в Command1(после того, как у объктов появился Index, им можно давать одинаковые имена).
Цель нашей программы будет сменить у всех кнопок свойство Caption. Код:

Private Sub Form_Load()
For i = 0 To 4' Цикл, от 0 до 4
Command1(i).Caption = Command1(i).Index' Меняем свойство Caption у кнопки с именем Command1, и с индексом равным i
Next i
End Sub

Все очень просто. Кстати, чтоб не устанавливать каждому объекту свойство Index, и не переименовывать его, можно просто кинуть объект на форму, копировать, потом вставить. Появится окошко, в нем надо нажать ДА.

Как ты наверное заметил, у объектов с заданным индексом, все события общие. Т.е., допустим у нас 5 кнопок с одинаковым именем, и с разными индексами. И у них общее событие, т.е. при нажатии на любую кнопку сработает общее событие Click. Как же узнать, какая кнопка была нажата? А вот так:

Private Sub Command1_Click(Index As Integer)' Общее событие, для всех объектов с именем Command1
If Command1(Index).Index = 0 Then MsgBox "Нажата 0"' Если была нажата кнопка с индексом 0, то выводим сообщение.
If Command1(Index).Index = 1 Then MsgBox "Нажата 1"
If Command1(Index).Index = 2 Then MsgBox "Нажата 2"
If Command1(Index).Index = 3 Then MsgBox "Нажата 3"
If Command1(Index).Index = 4 Then MsgBox "Нажата 4"
End Sub


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Объекты VB (Объекты VB)
Страница 1 из 11
Поиск: