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

Что - то типа практики, или шаг написанный для большинства

 
 

Ну в этом уроке мы сделаем простенькую программу, по теме создание объектов(массивы). Открой исходник предыдущего шага, и не много до пишем код:

Dim t As Long, S As Long ' Объявляем переменные

Private Sub Command1_Click(Index As Integer)
If S = 0 Then ' Если S = 0 то загружаем кнопки
For i = 1 To 10 ' Делаем цикл от 1 до 10, спросишь почему не от 0 до 10? Да потому что объект с индексом 0 у нас есть, если написать от 0 до 10 то начнет ругаться(материться)
t = t + 500' Каждый цикл прибавляем к переменной t пятихатку, это переменная будет задовать высоту создаваемых кнопок, каждая кнопа на 500 ниже предыдущей 
Load Command1(i) ' Загружаем кнопу с именем Command1, а в скобах индекс( i каждый цикл на 1 больше, начинается с 1 до 10)
Command1(i).Caption = "Кнопа №:" & i ' Устанавливаем свойство Caption для каждой кнопки 
Command1(i).Top = t' Устанавливаем высоту(t = t + 500) 
Command1(i).Left = 1700 ' Устанавливаем свойство Left
Command1(i).Visible = True ' Показываем кнопки, т.к. они в начале скрытые 
Next i
End If

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"
If Command1(Index).Index = 5 Then MsgBox "Нажата кнопа 5"
If Command1(Index).Index = 6 Then MsgBox "Нажата кнопа 6"
If Command1(Index).Index = 7 Then MsgBox "Нажата кнопа 7"
If Command1(Index).Index = 8 Then MsgBox "Нажата кнопа 8"
If Command1(Index).Index = 9 Then MsgBox "Нажата кнопа 9"
If Command1(Index).Index = 10 Then MsgBox "Нажата кнопа 10"

S = 1 ' S = 1, это для того чтоб при нажатии на кнопку не происходили ошибки, т.к. начнут создаваться кнопки, а они уже есть, и VB ругаться начинает
End Sub

Private Sub Form_Load()
S = 0
End Sub

Исходник ищи Здесь


Есть вопросы? Спроси на нашем форуме!!
Mikhanicus [12.03.2013 13:02]

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"
If Command1(Index).Index = 5 Then MsgBox "Нажата кнопа 5"
If Command1(Index).Index = 6 Then MsgBox "Нажата кнопа 6"
If Command1(Index).Index = 7 Then MsgBox "Нажата кнопа 7"
If Command1(Index).Index = 8 Then MsgBox "Нажата кнопа 8"
If Command1(Index).Index = 9 Then MsgBox "Нажата кнопа 9"
If Command1(Index).Index = 10 Then MsgBox "Нажата кнопа 10"

Это можно заменить на:

If Command1(Index).Index = Index Then MsgBox "Нажата кнопа " & Index

alex13sh300 [12.03.2013 20:47]

статья написанно ужс(((

условие не нужно
Msgbox "Нажата " & command1(index).Caption

Shade970 [12.03.2013 21:02]

Можно и так:
Private Sub Command1_Click(Index As Integer)

Select Case (Index)
Case (Index): MsgBox "Button index: " & Index
End Select

End Sub

Shade970 [12.03.2013 21:05]

Если необходимо сделать на каждую кнопку с индексом какой нибудь код, то условие нужно.

Shade970 [12.03.2013 21:15]

Типа такого варианта

Select Case (Index)
Case Is = (0): End
Case Is = (1): Me.Caption = (App.EXEName)
Case Is = (2): Me.Caption = VB.Printer.DriverName
Case Is = (3): Me.BackColor = (vbRed)
End Select

fireday10 [13.03.2013 22:34]

Автору самому стоит сделать этот шаг.

fireday10 [13.03.2013 22:35]

для этого (MsgBox "Button index: " & Index) не нужно никаких условий



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




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