Индексированные элементы управления — страница 4

  • Просмотров 2727
  • Скачиваний 196
  • Размер файла 97
    Кб

примере я показал два варианта реализации задачи: без использования массива объектов и с использованием его. А можно ли реализовать как-то по-другому решение данной игры, но всё-таки тоже используя массив объектов. Да, можно. Рассматриваем ту же задачу, те же коробки, с использованием тех же массивов элементов ( ... но "как-то по-другому ..." ). Всё таже форма, всё тот же Label1(0), всё таже клавиатура ... На метке выполняем комбинацию

клавиш Ctrl + C, затем Ctrl + V (отвечая положительно на появившийся вопрос диалогового окна среды разработки). Разместите появившуюся метку правее от имевшейся метки. Повторите ещё: Ctrl + V и разместите правее второй. Продолжайте повторение до тех пор пока не разместите метку Label1(9) правее метки Label1(8). Теперь выделите имеющиеся метки с индексами больше единицы. И измените свойства этих меток на противоположное - False. Label1(1) и Label1(0) поменяйте

местами. Объявленную переменную оставьте такую же. Оставлять же процедуры такими какими они есть бессмысленно, потому что уже в "первой" процедуре - процедуре загрузки приложения в память - появится ошибка о невозможности добавить элемент Label1(1), так как он уже существует ... Поэтому удалите все процедуры и посмотрите, какими они могут быть заменены: Private Sub Form_Load() Me.WindowState = 2 skolko = 1 End Sub Private Sub Label1_Click(Index As Integer) If Fix(skolko * Rnd) + 1 = Index

Then ' если "угадали" - одна убирается Label1(skolko).Visible = False skolko = skolko - 1 Else ' если не "угадали - выставляется ещё одна" skolko = skolko + 1 If skolko <> 10 Then Label1(skolko).Visible = True End If Select Case skolko ' проверка на выигрыш и проигрыш Case 0 MsgBox "Вы выиграли!": End Case 10 MsgBox "Вы проиграли.": End End Select End Sub Завершим рассмотрение данного примера сравнением. Проект в первом случае имеет размер 2,46 Кб, в последнем - 8,57 Кб. Однако откомпилированные, исполняемые

модули по размеру одинаковы ... Другой вопрос: а какова разница затраченного времени в обоих случаях, если второй писать "с нуля"? Ответ, понятно, субъективен и зависит во многом от того насколько хорошо вы знакомы со средой разработки, "видите" реализацию кода и насколько быстро набираете его. Пример последний или почему "индексированные элементы управления"? Чтобы понять, почему корректнее в некоторых случаях

говорить "индексированные элементы управления c общим именем", а не "массив элементов управления" рассмотрим следующий небольшой пример. На форме брошены шесть кнопок, надписи которых заменены звёздочками: Кнопки имеют общее имя M, а индексы у всех разные: 204, 192, 209, 67, 200, 194 (в порядке расположения на форме слева направо). Отсюда понятно, что позиция на экране элементов управления не имеет значения, даже если у них общее