Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

Оптимизация размера приложения

При оптимизации размера приложения под размером будем понимать как размер исполняемого файла, так и размер загруженного в память приложения. Особенно критичным размер является для приложений, работающих в сети Internet. Поэтому такие приложения следует делать как можно меньшего размера. Если это не получается, можно разделить большое приложение на несколько небольших, которые будут выполнять законченные функции и загружаться по мере необходимости.

Частичную оптимизацию размера кода выполняет сам Visual Basic 6. При компиляции приложения в исполняемый файл пустые строки и строки комментариев пропускаются, поэтому на них можно не экономить. В том числе можно не экономить на длине имен идентификаторов, которые также оптимизируются компилятором.

Для оптимизации размера кода подойдут такие основные рекомендации:

  • уменьшайте количество загруженных форм. Для форм, которые закрываются, применяйте оператор: set Form = Nothing;

  • уменьшайте в формах, насколько это возможно, количество элементов управления. При этом лучше пользоваться массивами элементов управления;

  • для вывода тестовых значений максимально используйте объекты Label

  • вместо TextBox;

  • для хранения данных используйте файл ресурсов и загружайте данные только при необходимости;

  • избегайте переменных типа variant, требующих 16 байт для хранения. Для сравнения переменные типа integer требуют 2 байта, переменные типа Double — 8 байт;

  • избегайте "мертвого" кода — то есть процедур и переменных, которые когда-то требовались, но в настоящее время не используются. Их надо удалить или закомментировать.

Оптимизация размера графики приложения

Графика занимает существенный размер приложения, поэтому важно использовать ее оптимально. Для этого подходят такие рекомендации:

  • для вывода изображений используйте элемент управления типа image, а не Picture, поскольку последний имеет атрибуты окна и, соответственно требует больше ресурсов;

  • загружайте изображения только при необходимости, а не храните их в элементах управления;

  • если необходимость присутствия изображения не требуется, назначайте свойству Picture объектов значение Nothing: Set Object. Picture = Nothing.

Замечание

Приведенный здесь список не содержит всевозможные рекомендации и приемы оптимизации приложений. В этом вопросе помощь вам может оказать только большая практика работы с Visual Basic 6, поскольку создание оптимальных приложений сродни мастерству, оттачиваемому разработкой приложений для Visual Basic 6.

15. Основные свойства и методы объектов Screen. Примеры

Свойства объекта Screen описаны в таблице:

Свойство

Описание

ActiveControl

Возвращает ссылку на элемент управления, находящийся в фокусе

ActiveDatasheet

Возвращает ссылку на таблицу, находящуюся в фокусе.

ActiveForm

Возвращает ссылку на форму, находящуюся в фокусе.

ActiveReport

Возвращает ссылку на отчет, находящийся в фокусе.

Application

Возвращает ссылку на объект Application.

MousePointer

Устанавливает или возвращает значение, которое определяет тип курсора мыши, отображаемого в данный момент

Parent

Возвращает ссылку на объект, содержащий объект Screen.

PreviousControl

Возвращает ссылку на предыдущий находившийся в фокусе элемент управления.

При использовании объекта Screen целесообразно реализовать обработку ошибок, так как при выполнении Вашего кода в фокусе может оказаться не тот объект. Вероятно, лучше сначала применить метод SetFocus формы, отчета или элемента управления для установки фокуса ? тогда Вы будете уверены, что в фокусе находится именно тот объект, который Вам нужен. Кроме того, старайтесь не использовать объект Screen с методом OutputTo объекта DoCmd.

Свойства ActiveForm и Me не обязательно возвращают ссылку на одну и ту же форму. Свойство Me представляет форму, чей код выполняется в данный момент, а свойство ActiveForm возвращает ссылку на форму, активную на экране, и это не всегда та форма, чей код сейчас выполняется. Допустим для примера, что в неактивной форме произошло событие Timer. Тогда свойство Me позволит сделать ссылку на форму, в которой произошло событие Timer, а свойство ActiveForm ? на форму, которая активна на экране в момент возникновения (и обработки) этого события.

В следующем примере событие Timer используется для обновления данных на активной форме через регулярные интервалы. Форма, в которой происходит событие Timer, может быть (а может и не быть) активной.

Private Sub Form_Load( ) ═════Me.Timer-Interval = 30000 End Sub

Private Sub Form_Timer( ) ═════Const conFormNotActive As Integer =2475 ═════Const conFormInDesignView As Integer = 2478

═════On Error GoTo Error_Timer ═════? периодически запрашиваем источник записей "в интересах" активной формы ═════Screen .Active Form. Requery

═════Exit_Timer; Exit Sub

Error_Timer: ═════If Err = conFormNotActive Or Err = conFormInDesignView Then ══════════Resume Exit_Timer ═════Else ══════════MsgBox Err & ": " & Err. Description ═════End If End Sub

Объект Screen для пользователей Visual Basic 6.0

В Visual Basic 6.0 объект Screen предоставляет доступ к активной форме и элементу управления приложения, предоставляет сведения об области экрана, в которой отображается приложение, и позволяет изменять внешний вид курсора.