Массив процедур - как?

Тема в разделе "Visual Basic", создана пользователем borisblade, 11 фев 2010.

  1. borisblade

    borisblade Гость

    Пример
    имеется 10 кнопок - напротив каждой по два текстбокса
    при нажатии батона число из первого текстбокса возводится в квадрат и попадает во второй тесктбокс
    батоны и текстбоксы естессно в массиве
    как сделать одну проыедуру, к кот. можно обратиться по индексу?
    типа
    button(i).click calls proc(i)
     
  2. skysun

    skysun Гость

    в VB если создается массив котролов, то в обработчке события добавлется доп. параметр - индекс контрола - источника события.как сделать

    А массив процедур в VB это скорее фантастика. такое если и можно то каким нибудь не естественным способом!!!
     
  3. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    в процедуру proc(i) передаётся параметр (I)
    Я думаю можно как-то так:

    Код (Text):
     Private Sub proc(i)
    Select Case i
    Case 1
    '--------------------- код 1
    Case 2
    '---------------------код 2
    Case 3
    '------------------------код 3
    end select
    End Sub
    Добавлено: Или просто упорядочить индексы тексбоксов
    у исходных тексбоксов индексы совпадают с индексами кнопок. У получающих данные на 10 больше. И обойдёшься одной процедурой:

    Код (Text):
    Private Sub Комманда1_Click(Index As Integer)
    Текст1(Index + 10).Value =Val(Текст1(Index)).Value ^ 2
    End Sub
    Или второй массив текстбоксов с совпадающими индексами
    Код (Text):
    Private Sub Комманда1_Click(Index As Integer)
    Текст2(Index).Value =Val(Текст1(Index)).Value ^ 2
    End Sub
     
  4. borisblade

    borisblade Гость

    То, что в процедуру можно подать аргументы, и так понятно
    Вопрос вот в чем - если у меня кнопок 100? Для каждой писать
    sub button1..100_click (...) handles button1 click
    ?
    или можно как-то перечислить
    For i=1 to 100
    sub button(i)_click handles button(i) click
    next i

    кстати если я созданной мной переменной типа батон присваиваю существующий батон, как мне написать процедуру клика по батону?
    sub my_button_click handles my_button click ?
    так?
     
  5. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Или мы говорим на разных языках??
    Для массива кнопок процедура одна!!

    Код (Text):
    Private Sub Комманда1_Click(Index As Integer)

    End Sub
    ничего перечислять не надо. Зачем вызывать дополнительную процедуру? У тебя уже есть индекс нажатой кнопки
    к нему и привязывайся в самой процедуре.
    или ты хочешь программно нажать все кнопки?? тогда:

    Код (Text):
    Private Sub Комманда2()
    Dim i
    For i = 0 To Комманда1.Count - 1
    Комманда1_Click (i)
    Next i
    End Sub
    А на каком языке, извините, писано:?
    неужто VB
     
Загрузка...

Поделиться этой страницей