Размещение картинки в программе

Размещение картинки в программе

Владимир Коробицын

Оживление картинок. Изготовление электронной кнопки. Создание исполняемого EXE-файла

На одном из дисков вашего компьютера, например, на диске C, создайте папку с произвольным названием, допустим Lesson11. Запустите Visual Basic. В средней части экрана Вы увидите окно формы с именем Form1. Это и есть тот самый фундамент Вашего будущего приложения для Windows.

Для начала на форму поместите рисунок. В левой части экрана расположено окно инструментов. Если Вы его не видите, выберите в меню Window (Окно) команду Toolbox (Окно инструментов). Наведите указатель мыши на значок «Рисунок», который расположен в окне инструментов, и щелкните по нему левой кнопкой мыши. Затем поместите указатель мыши на свободное поле окна формы Form1 в его верхнем левом углу. Нажмите на левую кнопку мыши и, не отпуская ее, переместите указатель в сторону правого нижнего угла, расширяя появившийся прямоугольник до произвольных размеров. Отпустите кнопку мыши.

Таким образом на форму Вы поместили объект PictureBox (Окно рисунка) с именем Picture1 (Рисунок первый). Имена объектов можно изменять. Мы на протяжении всей книги будем использовать те имена объектов, которые будет предлагать для них Visual Basic по умолчанию. В дальнейшем для простоты описания объектов будем называть их по именам, не упоминая общего названия объекта.

В правой части экрана расположено окно Properties (Свойства). Если в данный момент окно скрыто, выберите в меню Window (Окно) команду Properties (Свойства) или нажмите клавишу <F4>. В окне Properties (Свойства) щелкните два раза левой кнопкой мыши по надписи Picture (Рисунок). Во вновь появившемся окне Load Picture (Загрузка рисунка) выделите файл рисунка 01.wmf. Щелкните по имени этого файла два раза. Изображение яблока окажется на форме Form1, выделенное маркерами – черными квадратиками небольших размеров. Откорректируйте размеры рисунка на Ваше усмотрение. Для чего ухватите любой из маркеров окна рисунка и перемещайте мышь в нажатом состоянии в необходимом направлении. Для перетаскивания рисунка по форме целиком нажмите на поле картинки и, не отпуская кнопку мыши, переместите картинку. Освободите кнопку мыши. Желательно, чтобы изображение яблока расположилось в левой половине формы Вашего приложения. В окне Properties (Свойства) выберите свойство BorderStyle (Граничный стиль) и два раза щелкните по его надписи. Данное свойство объекта Picture1 (Рисунок) примет значение 0-None (Нет), при этом граница рисунка исчезнет.

Запустите Вашу программу на выполнение, для чего щелкните один раз левой кнопкой мыши по значку «Запуск программы», расположенному на панели инструментов или нажмите на клавишу <F5>. Можно также на панели инструментов выбрать в меню Run (Пуск) команду Start (Старт). Если на панели инструментов не видны кнопки со значками, то в меню View (Просмотр) выберите команду Toolbar (Набор средств). Остановите работу программы, нажав в заголовке приложения на кнопку «Закрыть» или сочетание клавиш <Alt + F4>. Аналогичным образом на форму Вашего приложения поместите второй рисунок, используя теперь файл 02.wmf. Рисунок вишни расположите в правой половине формы. Наведите указатель мыши на изображение яблока и щелкните два раза левой кнопкой мыши – появится окно программного кода с процедурой Picture1_Click. Имя процедуры обычно состоит из имени объекта и имени возможного для данного объекта события. Данная процедура будет вызвана во время работы программы при свершении такого события, как одиночный щелчок мыши по изображению яблока. В эту процедуру прерывания запишите две строки:

Sub Picture1_Click ( )  ‘ начало работы процедуры прерывания

Picture1.Visible = False ‘ скрыть первый рисунок

Picture2.Visible = True  ‘ показать второй рисунок

End Sub     ‘ завершение прерывания

Для немедленного вызова окна программных утверждений в меню View (Просмотр) нажмите команду Code (Программный код) или клавишу <F7>.

Первая строка для объекта Picture1 (Рисунок) устанавливает его свойству Visible (Видимость) значение False (Ложь). Это программное утверждение сделает яблоко «невидимым». Вторая строка покажет вишню. Для объекта Picture2 в процедуру Picture2_Click поместите две строки противоположного действия:

Sub Picture2_Click ( )

Picture1.Visible = True

Picture2.Visible = False

End Sub

Запустите программу. Поочередно понажимайте левой кнопкой мыши на изображения яблока и вишни. Остановите программу.

Таким образом, управление объектами в процессе работы программы Visual Basic происходит путем изменения их свойств. Для изменения свойства объекта этому свойству присваиваются различные значения в окне для ввода программного кода по формуле:

Объект.Свойство = Значение

Сначала записывается имя объекта, затем его свойство, причем разделяются они точкой. После указания свойства объекта ставится знак «присвоить значение» и на последнем месте записывается значение свойства объекта. Как видите знак «=» здесь несет совершенно другую смысловую нагрузку, в отличие от его назначения в математике.

Нажмите один раз на свободное от рисунков поле формы Form1 и в окне свойств объекта выберите свойство Caption (Заголовок) и измените надпись строки заголовка окна Form1 на произвольную, например: «Мое первое приложение для Windows». Сохраните Вашу программу в папке Lesson11, для этого в меню File (Файл) выберите команду Save Project As... (Сохранить проект как...). Подтвердите предлагаемые имена файлов Form1.frm (Первое окно приложения) и Project1.mak (Проект приложения). Можно дать другие имена, придерживаясь правил DOS. Типы данных файлов изменять недопустимо.

Откомпилируйте программу, т.е. создайте исполняемый EXE-файл. Для чего на панели инструментов выберите меню File, а затем команду Make EXE File... . В процессе компиляции Visual Basic сливает отдельные файлы-компоненты проекта приложения в единый файл с расширением EXE. Компиляция проекта приложения – это процесс рождения самостоятельного EXE-файла. С этого момента дитя выходит из подчинения своего родителя по имени Visual Basic.

Завершите работу в Visual Basic, нажав в его заголовке кнопку «Закрыть» или сочетание клавиш <Alt + F4>. Откройте папку Lesson11. В ней Вы обнаружите файлы: Project1.mak, Form1.frm и Project1.exe. Запустите свое приложение Project1.exe. Поработайте в нем. Закройте приложение. При желании Вы можете переименовать этот файл, но расширение должно остаться прежним – EXE.

А теперь рассмотрим некоторые приемы простейшей анимации. Создайте папку Lesson12 для следующего приложения. Запустите Visual Basic. Окно формы Form1 увеличьте по ширине почти до полной ширины экрана Вашего дисплея, а по высоте уменьшите примерно в два раза. В правую половину формы поместите рисунок из файла 01.bmp, так чтобы передняя часть автомобиля виднелась из-за правого края формы. Вызовите окно программного кода для этого рисунка и в процедуру Picture1_Click впишите строки:

For n = 1 To 500      ‘ начало цикла

Picture1.Left = Picture1.Left – 15  ‘ передвижение вперед

Next        ‘ завершение цикла

Цикл For-To-Next выполнит строку «Picture1.Left = Picture1.Left – 15» пятьсот раз, что приведет к постепенному передвижению картинки влево, так как координата его по горизонтали каждый раз будет уменьшаться на 15 единиц (или на один пиксель экрана).

Запустите программу. При одиночном щелчке мышью по автомобилю, последний будет перемещаться вперед. Закройте приложение. В процедуру Form_Click запишите:

Picture1.Left = 7920  ‘ возврат на стартовую позицию

Left – это одно из многочисленных свойств объекта Picture1, задающее значение координаты левого края этого объекта. Для изменения расположения по вертикали существует свойство Top, отвечающее за значение верхнего края объекта. Этими свойствами обладают и другие объекты в Visual Basic.

Запустите приложение. Заставьте автомобиль исчезнуть за пределами окна Вашего приложения. Щелкните по свободному полю окна – автомобиль немедленно займет стартовую позицию. Подумайте, как это осуществляет строка в процедуре Form_Click, которая обрабатывается при одиночном щелчке указателем мыши на форму. Вновь приведите автомобиль в движение и верните его в исходное состояние. Закройте приложение. Сохраните проект Вашей программы в папке Lesson12. Создайте исполняемый файл и сохраните его в той же папке. Приложение готово. На следующем уроке Вы озвучите это приложение.

Для вызова окна проекта в меню Window (Окно) выполните команду Project (Проект). В этом окне Вы получите сведения о составе проекта приложения, а при необходимости с помощью кнопок «View Form» (Просмотр формы) и «View Code» (Просмотр программного кода) можете вызвать на экран форму приложения и ее программный код.

Рассмотрим еще один анимационный прием – масштабирование изображения. Для виндовских «резиновых» метафайлов с расширением WMF (Электронные картинки) можно использовать объект Picture (Рисунок) или объект Image (Образ), а для файлов точечных рисунков с расширением BMP масштабирование возможно лишь посредством объекта Image (Образ).

Создайте папку Lesson13 для Вашего следующего приложения. Запустите Visual Basic. В окне свойств формы Form1 выберите свойство BackColor (Цвет формы) и установите для него значение цвета – серый. Для этого щелкните два раза по свойству BackColor и в появившемся окне палитры цветов выберите серый цвет.

Для размещения объекта Image1 (Образ) на форме приложения щелкните по значку объектов типа Image (Образ) в окне объектов. Затем нажмите мышкой на поле Вашей формы и, не отпуская кнопки, переместите указатель в произвольном направлении по диагонали. Отпустите мышку. В окне свойства объекта выберите свойство Stretch (Изменение размера) и установите для него значение True (Истина). Здесь же выберите свойство Picture (Рисунок) и щелкните по нему два раза. Через появившееся окно загрузите рисунок из файла 02.bmp в форму Form1.

В окне объектов щелкните по значку «Командная кнопка», затем установите электронную командную кнопку Command1 на форму и подберите подходящие для нее размеры. Данные операции похожи на действия над объектами Picture (Рисунок) и Image (Образ). Щелкните указателем мыши по вновь созданному объекту два раза и в процедуру Command1_Click впишите программные утверждения:

Image1.Width = Image1.Width * 1.25  ‘ увеличение ширины

Image1.Height = Image1.Height * 1.25  ‘ увеличение высоты

Первая строка при одиночном щелчке по командной кнопке увеличит значение свойства Width (Ширина) объекта Image1 в 1,25 раза. Вторая строка сработает таким же образом для свойства Height (Высота). В результате размеры изображения увеличатся на 25%.

В окне свойств объекта Command1 выберите свойство Caption (Заголовок) и придайте ему значение «Увеличить», а свойству FontBold (Жирный шрифт) значение False (Ложь). Аналогичным образом создайте еще две командные кнопки: «Уменьшить» и «Выход». Для кнопки Command2 в процедуру Command2_Click впишите строки, которые будут уменьшать размеры фотографии на 25%:

Image1.Width = Image1.Width / 1.25  ‘ уменьшение ширины

Image1.Height = Image1.Height / 1.25 ‘ уменьшение высоты

Для кнопки Command3 в процедуру Command3_Click запишите программное утверждение:

End   ‘ завершение работы приложения

Это утверждение при одиночном щелчке по командной кнопке «Выход» будет завершать работу Вашего приложения.

Запустите программу. Поочередно, по несколько раз понажимайте на кнопки «Увеличить» и «Уменьшить», наблюдая за изменением размеров фотографии. Для окончания работы приложения щелкните по созданной Вами электронной кнопке «Выход». Сохраните проект приложения и создайте для него исполняемый EXE-файл. Проверьте этот файл в работе.

Домашнее задание

1. Изготовьте приложение, в котором мяч будет подпрыгивать вверх и затем возвращаться обратно при нажатии на электронную кнопку.

2. Создайте приложение, в котором какой-либо рисунок будет уменьшаться в размерах при нажатии на него указателем мыши и увеличиваться при нажатии на свободное от этого рисунка поле окна формы.

3. У объекта Form1 (Форма) самостоятельно исследуйте его свойство BorderStyle (Граничный стиль), которое может принимать четыре значения от 0 до 3.

Подготовка приложения для установки на другом компьютере

Создайте папку с произвольным названием, используя только латинские буквы и цифры. Скопируйте в эту папку созданный Вами ЕХЕ-файл и библиотеку динамических связей Vbrun300.dll. Если Ваше приложение содержит элементы мультимедиа (звук, музыка, видео, анимация), то в эту же папку необходимо скопировать файл Mci.vbx и мультимедийные файлы с расширениями WAV, MID, RMI, AVI, которые Вы задействовали в программе. Если приложение использует окно общего диалога, необходим будет файл Cmdialog.vbx. Помните, что файлы рисунков с расширениями BMP и WMF копировать не надо, так как Visual Basic в процессе компиляции автоматически помещает их в исполняемый EXE-файл. Если объем папки по размеру окажется больше емкости дискеты, то воспользуйтесь каким-либо архиватором, например WinRAR. Этот архиватор позволит Вам сжать приложение, при необходимости разбить архив на дискеты, а при желании файл архива можно сделать саморазворачивающимся.

Сохранение исходных текстов Ваших программ

Все исходные тексты программ Ваших приложений для Windows необходимо самым тщательным образом сохранять. Они могут понадобиться Вам в тех случаях, если появится желание изменить что-либо в ранее написанном приложении или Вы захотите использовать части этого приложения в своих новых работах. Кроме того, дискета с исходными текстами программ станет своеобразной копилкой Ваших знаний в Visual Basic. Придет время, когда понадобится освежить в памяти Ваши прежние достижения и тогда не нужно будет начинать все сначала. Для сохранения текстов программ достаточно скопировать на надежный носитель файл проекта Вашего приложения с расширением MAK и файлы форм этого приложения с расширением FRM. Если проект приложения содержит файлы модулей с расширением BAS, то их тоже нужно будет скопировать. При сохранении приложений создавайте отдельную папку для каждого из них. Если Ваше приложение является мультимедийным, то задействованные в нем файлы музыки, видео, звуков поместите в эту же папку.