Программирование
Веб программирование

Объекты VB

 
 

Наверное каждый встречался с проблеммой, когда много объектов, а надо одним разом поменть у них какое нибуть свойство. А писать код для каждого объекта очень долго, да и кода много получается. Очень неудобно. Как же быть? Да очень просто, у каждого объекта есть свойство 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

Исходник


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.