Классы и объекты для начинающих. Часть 2
Всем приходилось сталкиваться с ситуаций, когда одно или несколько действий нуждается в многократном повторении. (Процедуры - подумал Штирлиц) Нет , не процедуры. Точнее встречаются ситуации, в которых процедуры неудобны. К примеру - вам хочется подкрасить поле ввода ярким цветом, но не забыть вернуть цвет на место, когда фокус перешел к другому полю ввода. Или совершенно классический пример. Контрол никогда не знает, какой контрол до него имел фокус. А это бывает необходимо. Выход то есть, он заложен в эвентно управляемую среду Windows - достаточно отследить событие и правильно на него отреагировать. Т.е. в первом примере вам надо добавить код перекрашивающий контрол в событие Got Focus и код возвращающий цвет обратно в событие Lost Focus. Во втором случае надо на событие Lost Focus запоминать какой контрол имел фокус в паблик переменной уровня модуля. Все просто, не так ли? Только лень прописывать код во все контролы. К тому же форма в которой десятка полтора полей ввода - вообще норма. А нередко их вдвое-втрое больше. Выход есть. Рассмотрите подробненько этот пример кода на Visual Basic. Он состоит из класс модуля Class1 , обычного модуля и формы с кнопкой и четырьмя текстбоксами. Форма: Sub Form_Load() Модуль : Public PrevControl as Control Class Module Option Explicit Public Property Set TextBoxCtl(OutsideTextBox As TextBox) Что мы имеем в результате: Все текстбоксы меняют цвет в соотвествии с поставленной задачей. Эвенты класса случаются После аналогичных эвентов самих контролов.(что открывает и другие возможности по управлению програмой)
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=6474 |