Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Продолжаем изучать Visual Basic

ОСХ - расширения Visual Basic

Одно из достоинств Visual Basic состоит в возможности использования так называемых Custom Controls (файлы с расширением OCX), элементов управления, разработанных сторонними производителями. В названии ОСХ первая буква обозначает OLE (Object Linking and Embedding). Возможно, вам знакома эта технология по работе с другими приложениями Windows. Так, технология OLE применяется при вставке в документ Word для Windows объектов из других приложений Microsoft Office.

В приложение Visual Basic в качестве элемента управления можно включать OLE-сервер. Если в Visual Basic 4.0 имеется возможность создавать как 16-разрядные, так и 32-разрядные приложения, то начиная с Visual Basic 5.0 - только 32-разрядные, при этом используется новый стандарт для элементов управления - технология ActiveX. Элементы ActiveX повышают быстродействие приложения и зачастую имеют меньший объем памяти, чем старые ОСХ, приемы работы с которыми в новой версии не изменились. С помощью Visual Basic такие элементы управления можно создавать самим.

В завершение теоретической части приведем возможные файлы, составляющие проект:

  • файл каждой формы (*.FRM);
  • файл каждой формы с элементами управления, содержащий бинарную информацию (*.FRX);
  • файл каждого модуля (*.BAS);
  • файл каждого модуля классов (*.CLS);
  • файлы дополнительных элементов управления ((*.ОСХ);
  • максимум один файл ресурсов ((*.RES);
  • файл проекта, содержащий ссылки на свои компоненты (*.VBP);
  • ряд дополнительных файлов, зависящих от вида проекта (*.CTL и др.).

Модифицирование примера

Итак, давайте усовершенствуем рассмотренный в предыдущей статье пример создания фотоальбома следующим образом: сделаем так, что необходимые программе файлы (картинки, база данных и др.) будут искаться в директории программы (или поддиректориях там же), что позволит изучить вам новые компоненты и придать программе законченный вид. После такого ее усовершенствования вы можете создать Setup-приложение и с гордостью дать посмотреть своим друзьям, будучи уверенным, что это не вызовет у них больших затруднений и избавит вас от нудных инструкций типа "работать будет только в такой-то директории с такого-то диска". Кроме этого я предлагаю посмотреть работу со звуком с помощью компонента Windows Media Player, который появляется после установки на вашем компьютере одноименной полезной программы. Для нашего примера мы сделаем фоновую музыку - согласитесь, это приятно, когда просмотр сопровождается хорошей музыкой. А также воспользуемся компонентом Timer (таймер), с помощью которого можно делать многие интересные вещи и который, несомненно, пригодится вам в дальнейшей работе.

Откройте созданный ранее проект "Фотоальбом" и приступим к работе. Выберите Form1 и перетащите на нее компонент DirListBox (выглядит как обозначение папки в Windows). Как вы понимаете, этот компонент и позволит программе осуществить поиск программой файлов там, где надо. Свойство компонента Visible надо поставить False. Однако кроме него нам понадобится создать модуль (Module). Ввиду того, что многие переменные (в нашем случае это будет путь нахождения программы) могут понадобиться на многих формах нормального, серьезного проекта, удобно использовать модуль, содержимое которого будет доступно всем формам и избавит вас от необходимости объявлять одну и ту же, например, переменную на всех использующих ее формах. Конечно, для этого переменную надо еще объявить как глобальную. Впрочем, не буду забегать вперед. В меню Project выберите Add Module (Добавить Модуль), в открывшемся диалоге опять выберите единственный представленный там объект - модуль, и перед вами появится окно его кода. В нем надо написать:

Global PPath As String

Далее откроем окно кода Form1. В левом ниспадающем меню выберем собственно Form, а в правом процедуру Load. Таким образом, путь нахождения нашей программы будет записываться в переменную Ppath при загрузке формы в память. Затем напишем там следующую строку кода:

PPath = Dir1.Path / где Dir1 - имя нашего компонента, а Path - метод

Давайте поместим графические изображения в отдельную поддиректорию, например Picts. Создайте где-нибудь на своем жестком диске каталог, где будет потом располагаться программа, и затем в нем поддиректорию с таким названием. После этого открываем окно кода Form2. Сотрем строку Image1.Picture = LoadPicture

(Text1.Text) в Private Sub Data1_Reposition() и вместо нее впишем следующее:

Dim S As String
If (Text1.Text  "")Then
S = PPath + "\picts\" +Text1.Text
Image1.Picture = LoadPicture(S)
End If

Как видите, здесь мы используем условную конструкцию If…then и переменную S (оператор Dim). Они нужны для правильного функционирования события Data1_Reposition, т. к. оно вызывается при загрузке формы, в то время как программа еще не имеет никакой информации о базе данных. Во избежание ошибки в связи с тем, что программе недоступно имя файла картинки и используется это условие, а также вспомогательная локальная переменная S. Теперь проделаем аналогичную операцию в Private Sub Form_Initialize() - сотрите или подправьте написанную там строку, дописав следующее:

Dim S As String
Data1.DatabaseName = PPath
Data1.Enabled = True
 If (Text1.Text  "") Then
 S = PPath + "\picts\" + Text1.Text
 Image1.Picture = LoadPicture(S)
 End If

Перейдем к созданию фоновой музыки. Для этого я предлагаю воспользоваться Windows Media Player. Если у вас не стоит эта программа, вы можете скачать ее из Internet, с сайта Microsoft. Она совершенно бесплатная. После инсталляции вы сможете добавить эту программу в качестве компонентов к своей рабочей панели. Выберите в меню Project -Components… Найдите в появившемся списке Windows Media Player и добавьте его. После чего перейдите к Form1 и создайте на ней данный компонент.


Он получит название MediaPlayer1. Найдите в свойствах этого компонента строку Custom, нажмите на нее и в открывшемся меню поставьте галочки рядом со строками Repeat Forever и Rewind when done playing. Это позволит зациклить музыкальную композицию так, что она будет играть все время, пока работает программа. Затем добавим соответствующий код в Private Sub Form_Load() первой формы.


Окно свойств (custom-настройки) Windows Media Player

MediaPlayer1.FileName = PPath + "\music\m.wav",

где \music\ - имя поддиректории, в которой вы хотите хранить музыку, а m.wav - имя файла с расширением. Windows Media Player поддерживает большое число видов файлов, так что это совершенно необязательно должен быть WAV. К слову сказать, через этот компонент очень удобно проигрывать видео, например, сделать заставку к программе. Можете попробовать сами, это не сложно, просто изучите те же Custom-настройки. Одиночный файл можно подключить напрямую в поле Filename, правда, в этом случае опять получится неувязка с путями, как в первом примере, но для того, чтобы просто попробовать, это вполне сойдет.

Теперь перейдем к операциям с компонентом Timer. Я предлагаю создать к нашей программе еще и заставочную картинку, которая будет исчезать с экрана через определенный промежуток времени, загружая главное меню. Для этого, как вы понимаете, нам понадобится еще одна форма. Добавьте форму (Form3) и сделайте ее свойство BorderStyle равным None. Таким образом, окно не будет иметь никакой рамки, что будет неплохо смотреться. Выберите подходящую по вашему вкусу картинку и добавьте ее на форму через свойство Picture. Не забудьте поставить StartUpPosition - CenterScreen. Теперь добавим на форму компонент Timer.


Экран Form3 в разработке

Он назовется Timer1. Найдите в его свойствах строку Interval - это время задержки в миллисекундах. Придется подобрать под свою машину, так как задержка различается в зависимости от мощности процессора. Попробуйте для начала значение 4000. Далее нам нужно сделать так, чтобы эта форма загружалась первой. Выберите в меню Project - Project Properties.


Окно свойств проекта

В появившемся окне выберите Form3 в поле Startup Object. Заодно можете и переименовать свой проект во что-нибудь благозвучное. И наконец, приступим к программированию. Два раза кликните на иконке компонента Timer на форме и напишите в появившемся окне кода:

Timer1.Enabled = False
Form3.Hide
Form1.Show

Вот в принципе и все. Скомпилируйте EXE-файл, поместите его в заранее заготовленную директорию и наслаждайтесь любимыми фотографиями под любимую музыку.

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

[Назад]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог