![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Массивы элементов управления
В рассмотренном примере классного журнала мы воспользовались массивами текстовых полей и меток для заполнения их в цикле именами полей и значениями из базы данных. Многие программисты, только начинающие работать с Visual Basic, стараются избегать таких массивов, поскольку не понимают, зачем они нужны. Однако использование массивов элементов управления не только упрощает программирование, но и позволяет оптимизировать код. Некоторые предпочитают написать программу, добиться ее работоспособности и только потом заняться оптимизацией. Это абсолютно неправильный подход. Поняв принципы работы Visual Basic, вы сможете сразу создавать уже оптимизированный код. Когда вы слышите, как кто-то говорит, что вернется к оптимизации попозже, будьте уверены: этот человек не очень хорошо знаком с языком. В данной книге постоянно отмечается, когда эффективнее использовать тот или иной способ кодирования из всех возможных. Применение массивов элементов управления - пример именно такой ситуации. Массив элементов управления «напрашивается», когда в форме есть несколько однотипных элементов. Будет логично, если вы решите создать два массива: один - для полей ввода, другой - для меток. Хранение элементов управления в массиве требует меньше ресурсов, чем размещение их в форме по отдельности. Массивы полезны и в том случае, когда вы хотите, чтобы несколько элементов имели общий код. Например, если десять нолей ввода помещены в массив, по какому бы из них вы ни щелкнули кнопкой мыши, будет выполнен один и тот же код - в этом преимущество массивов элементов управления. Хотя для каждого элемента массива имеется отдельное визуальное представление на экране, процедуры обработки событий являются общими для всех. Чтобы выяснить, какое конкретно поле ввода было выбрано из соответствующего массива, достаточно посмотреть на параметр Index. При добавлении нового поля ввода в массив оно наследует все общие для массива процедуры обработки событий. И, стало быть, код не дублируется, как было бы в случае десяти независимых элементов. Важная информация Работая с формой, всегда помните о том, что при ее инициализации должны быть загружены все элементы управления и весь код. Поэтому в форме надо по возможности уменьшать число объектов. Позже, узнав, как выполняется код, обеспечивающий работу элемента управления данными, вы научитесь помещать большую его часть в кодовый модуль. Не забывайте, что чем меньше места в памяти занимает форма, тем быстрее она загружается. Следовательно, тем больше она понравится пользователям.
При создании массива элементов управления Visual Basic создает параметр Index. Вы можете проверить его, чтобы выяснить, к какому из элементов в массиве относится действие, ибо все элементы имеют одну и ту же процедуру обработки событий. Вы лучше поймете, о чем идет речь, когда поработаете с примером, демонстрирующим возможности массива. Пока взгляните, как именно Visual Basic включает параметр Index. При изменении любого поля ввода, входящего в массив, возникает событие Change и срабатывает процедура:
Private Sub Text1_Change(Index As Integer) End Sub
. Если бы у вас было два отдельных поля ввода, у каждого была бы своя процедура обработки события Change. А так все десять полей пользуются единственным обработчиком, который идентифицирует источник события по переданному индексу. Еще одно преимущество массивов элементов управления состоит в том, что в них можно добавлять элементы во время выполнения программы.
Не будь у массивов элементов управления, динамическое создание элементов во время выполнения было бы невозможно. Ведь с новым элементом не было бы связано никаких процедур обработки событий. Вот тут-то массивы и приходят на выручку, помогая решить задачу. Новый элемент наследует общие обработчики, уже написанные для массива. Например, если в форме есть несколько полей ввода и каждое из них предназначено для ввода даты, можно поместить их в массив и организовать общую для всех процедуру проверки корректности введенного значения.
|