Visual Basic 6. Руководство разработчика



         

Объект


Ambient

Объект Ambient подобен объекту Extender в том смысле, что он предоставляет информацию об окружении элемента управления. И, фактически,'эти два объекта иногда перекрывают друг друга. Объект Ambient дает коду элемента управления информацию о цвете фона контейнера, шрифте и т.д. Единственное действительно важное свойство объекта Ambient — UserMode, которое указывает на то, действует ли элемент управления в режиме конструирования или в режиме выполнения программы.

Как известно из опыта работы с обычными элементами управления, все элементы управления VB функционируют в режимах конструирования и выпол­нения. Так как элемент управления ведет себя одинаково в обоих режимах, то нет необходимости различать их. При конструировании элементов управления ActiveX, однако, часто необходимо дифференцировать режимы работы в самом коде и реагировать на некоторые события по-разному, в зависимости от того, используется ли элемент управления в режиме конструирования или в режиме выполнения.

Свойство UserMode. Это свойство принимает значение True. когда элемент управления действует в режиме выполнения, или False, когда элемент управления действует в режиме конструирования. Для иллюстрации работы этого свойства попробуем отображать текст "Design Mode", когда элемент находится в режиме конструирования. Откройте код обработчика события Paint и вставьте следующие строки в конец кода.

Программа 16.9. Использование свойства UserMode

Private Sub UserControl_Paint()

DrawCaption

OldFontSize = UserControl.Font.Size

UserControl.Font.Size = 10

If Not Ambient.UserMode Then

UserControl.CurrentX = 0

UserControl.CurrentY = 0

UserControl.Print "Design Mode"

End If

UserControl.Font.Size = OldFontSize

End Sub

Эти операторы определяют, используется элемент управление в режиме конст­руирования или режиме выполнения. В режиме конструирования строка "Design

Mode" отображается в верхнем левом углу, как показано на рис. 16.8. В данном случае необходимы операторы, сохраняющие и восстанавливающие размер шрифта, в противном случае надпись "FLEXLabel Control" будет отображаться тем же маленьким шрифтом, что и строка "Design Mode", либо, наоборот, строка будет отображаться тем же большим шрифтом, что и надпись. Код устанавливает малый размер шрифта, отображает строку и восстанавливает исходный размер шрифта.




Содержание  Назад  Вперед