Друзья, я попытался, в отличие, от других бумагомарак, нау-
чить вас думать самостоятельно, без этого нет программиста.
Поэтому я больше показываю, чем рассказываю. Надеюсь, мне
удалось раскрутить вас, на самостоятельную деятельность.
Усвояется только то, что сам нашел и написал. У меня, во
всяком случае так.. Пожелаете подробностей, пожалуйста,
уважаемые читатели!
Все в ваших руках, покупая эту книгу, вы гарантируете себе ее
продолжение. Вы и только вы, можете создать серию книг,
наподобие серии “Для чайников..”, но собранной по темам
работ в Vb.
А теперь кратко, о чем не рассказывал еще.
Вы, наверное, уже попробовали богатую компонентами
опцию, для нового проекта? Это, я, про VB Enterprise Edition
Controls...
Там есть почти все, что надо. Жаль, что почти.. Например,
нету компонента для факса.. Или для предварительного прос-
мотра документов перед печатью.. Это вам самим писать, либо
скачать из интернета у третьих фирм. Они обычно 5-25 долл.
стоят или вовсе бесплатно, если бета - версия и т.д... Я,
например, бесплатно раздаю свой вспомогательный редактор к
Word’у (beta-версия), он решил мне проблему: Как писать на
иврите в русской Win95? Ни один ивритский шрифт не
отображается корректно без соответствующей им раскладки
клавиатуры, да и направление при печати должно быть проти-
воположным обычному. В мире есть 2 редактора, решивших ту
же проблему, но стоют десятки долл. дорогонько.. Проще
самому.. Тем более, что те, похуже Ворда. С ним не потягаться
никому, а зачем? Я так и сделал, я вчерне пишу иврит в своей
программе, все из нее посылаю туда, разукрашиваю уже в
Ворде.. Все о’кей, и память экономится и Word русский, кипу
надел. Компонент для факса, скачал из интернет. Бесплатно..У
VB есть компоненты косвенно решающие эту проблему. Для от-
крытия порта модема, джойстика и т.д., служит MsComm,
для открытия интернет - связи:, это соответственно, Inet и
Winsock.
Для отправки или получения (обработки) электронной почты:
MapiSession, MapiMessage. Их значки:
Опишу-ка, что не было еще рассказано:
MMControl позволит вам музыку и не только ее, проиг-
рывать или записывать, при наличии в компе звуковой
платы.
OLE -это то, что надо для получения или отправки
данных в (из) другие приложения.
Share - рисует графические примитивы, типа круг, линия,
квадрат..
MsChart - рисует графики. Отличная штука, обычно, ей, я
дополняю DBGrid.
Image вам знакомы, а Picture ?
Хорошая штука. Обрабатывает картинки. Кроме этого, отлича-
ется от первой, что может быть контейнером для кучи объектов
и совсем не обязательно картинок. Объекты могут быть в преде-
лах ее рамки и за ней (станут невидимы). Отличное средство для
создания анимированной “сцены”, а картинки - актеры, хорошо
загружать из Image-List . Это, всегда выглядит значком,
только через их “свойства”, в опции Custom, можете вставлять
картинки, на хранение. Подобно патронам в магазине автомата,
“скорострельность” загрузки вам будет обеспечена. А, этот
компонент, по-моему, естественно завершает этот ряд,
осущестяляя анимацию ( заданная последовательность, заранее,
загрузки ). Это Animation .
Есть еще, PictureClip. Создаст вам мозаику из объектов...
Из картинок пасьянсы раскладывать хотите? Пригодится.
О OptionBitton знаете, СheckBox им подобны, но их перек-
лючение не зависимо от друг друга, как у первых. Если, обье-
динять в контейнере объектов, обычно для них используют
Frame ( ), тогда (OptionBitton-ы), что внутри, не реагируют,
на переключение наружных переключателей. СheckBox же, не
совсем так, но, на форме смогут быть 2-а СheckBox1’а! Комп,
их, уже близнецами, не посчитает.
Это тоже, переключатель, но покрасивее.
Он, же, Slider ( ). Фактически, куча OptionBitton’ов, с их
“точкой”, ставшей стрелкой. Дизайн, для эстетов. А мир таков,
что клиенты, таковы!
И вот это, приятные мелочи, скрашивающие серый быт
юзеров....
StatusBar и ProgressBar ( ) Частенько видали, а ?...
В главе 3, на рис.21, образец.. В Word’е, они внизу, показы-
вают состояние чего-либо. Кстати, StatusBar, если вы его
поставите, он, сам по себе, установится в низу формы.
А вот, непременный атрибут, любой современной, уважа-
ющей себя программы.
ToolBar, это набор кнопок, что наверху, как у того же
Word, что на рис.21. Обычно его кнопки ассоциируют с кодом
менюшек. К кнопкам прямого доступа нет, надо на них влиять
через панель свойств, там в Custom... Чтоб кнопки были с
графикой, практически, всегда, этот компонент, дополняют
ImageList’ом.
Если открытие, закрытие файлов с помощью CommonDialog,
вас не устраивает, то к вашим услугам FileListBox, DirListBox
с, так же, DriveListBox.
Эти 3 компонента, последовательно связанные между собой,
проведут вас к любому файлу, но все эти связи, уже надо само-
му генерить... Рук марать не стоит, по-моему.
Зато, интересен в этом плане, TreeView и ListView.
И зрелищно, ”древо”, красивей, чем уныло перечисляемые
строчки, не находите? И, 1 компонент, вместо 3-х, как-то
приятнее... Но, код сложноват.. Ничего, глаза страшатся, а руки
делают..
Сейчас, давай шутки ради, сделаем программу для детей, пусть
в ней будет побольше вышеназванных компонентов. Для
практики. Вот, сделаем проект где будет форма с расположен-
ными на ней, объектами, как: прогрессбар, слайдер, MMControl,
и с Label, Shape и Timer.
Расположите их, чтоб получить лицо. На усмотрение вашей
фантазии....
Мой вариант, на рис.40:
Мы сделаем так, что когда запус-каем, прогрессбар
заполнится, наш мальчик обзаведется зубами, а мы знаниями,
как это работает.
При записи определенных слов в “усы”, ”рот” будет болтать и
услышим, как и полагается, как он поет.. И глазки поглядят в
сторону, куда, мы и скажем ему. Или побагровеют, если
обидится.. А, “нос” из слайдера, шмыгнет, если он, не узнает
слово.
Компонент ответственный за музыку, я сделал невидимым,
чтоб не портил дизайн, да и не нужны нам его кнопки, я же не
плеер делаю..
Вначале, настроим слайдер. Поставим в свойстве MAX , “2”.
Это, чтоб иметь только три переключающих положения, сами
знаете, переедать вредно. Ну, а SelStart = 1, обеспечит нам
положение ползунка посередине лица, ведь так надо? Он у нас
приличный мальчик, не из этих, драчунов, он рожден в интел-
лигентном обществе.
С помощью ящика красок, окрасим лабел и остальное в нуж-
ные цвета. Все, теперь код.
Чтоб в туулбар были кнопки, открываем Custom в панели
свойств, во вкладке Button, 4 раза щелкнем по кнопке Insert
Button, получим 4 кнопки! Просто, как пара плевков.
Каждая имеет свой индекс, по нему она идентифицируется, в
редакторе их не найдете, есть только 1 объект - туулбар. Они
внутри него. Увидеть можно только в Custom.
Я люблю их опознавать по свойству KEY, он мне приятнее,
например, первая кнопка имеет index=1, и я ей дал имя - tlbSay.
более понятно, для чего она. А, Caption... сами знаете. У меня
кнопки: Пой, Влево, Вправо, Я злой. их индексы,
соответственно, 1, 2, 3, 4, а KEY: tlbSay, tlbLeft, tlbRight, tlbBad.
Позаботимся, чтоб были с картинками. Заполним графикой
обьект ImageList, оттуда и будет брать иконки, себе для кнопок,
наш малыш. Действия похожие, опять в свойствах ищем Custom,
жмем insert Picture и ищем любые иконки или bmp-files.
Запомните их индексы.
Опять возвращаемся к туулбар, в его свойства, во вкладке
“кнопки”, внизу, в поле Image вводим индекс соответст-
вующего icon. А, чтоб он знал, откуда она, щелкните по вкладке
General, в поле ImageList , “ImageList1”. Вы увидите, как сим-
патично, будет выглядеть челка у паренька. Забыл сказать, что,
чтоб, глаза были овальными, а зрачки круглыми, свойство Style
установите как Oval или Сircle.
Щелкая по таймеру, откроем редактор и пишем в нем
действия, для заполнения рта, зубами.
ProgressBar1.Value = Zub
If Zub >= 32 Then Timer1.Enabled = False
Zub = Zub + 1
Этот корявый, но очень наглядный код, заполняет ребенку
рот.
ProgressBar1 имеет максимальную величину 100, по умол-
чанию, можете увидеть эту цифру, в свойстве МАХ. А, Value, 0.
Поэтому зубов нет. Увеличивая переменную Zub, мы увеличи-
ваем и Value..
Вот и все, остальное следит, чтоб таймер остановился. И это,
так же, защищает от краха программу. Ведь если допустить, что
Value будет > 100, для обьекта - прогрессбар сгенерится ошибка
и программа зависнет..
Теперь, щелкнем по туулбар и докончим дело..
Как видите в редакторе есть только событие для ToolBar1!
Никаких кнопок и нет.
Все это, правильно. Делаем, вот, что:
В событии, Toolbar1_ButtonClick, пишем:
Select Case Button.Key ’можно и Index, но ведь так наглядней?
Case " tlbSay "
MMControl1.Command =“Sound”
Case " tlbLeft "
Shape1.Left= Shape1.Left -10 ‘ сдвиг вбок
Shape2.Left= Shape1.Left -10 ‘
Case " tlbRight "
Shape1.Left= Shape1.Left+10 ‘сдвиг вбок
Shape2.Left= Shape1.Left +10 ‘
Case " tlbBad "
Shape1.BackColor=vbRed ‘белки глаз побагровеют
Shape2.BackColor=vbRed
Shape1.Height = Shape1.Height - 10 ‘ прищурится.
Shape2. Height = Shape2.Height - 10
End Select
Саse, это то же, что и if .. Then..Еnd if, но поизящнее
смотрится.
Селекция происходит, только между подчеркнутыми опе-
раторами, и для каждого Case действительны все строчки кода,
что после него и до следующего Case.
А в событие: Form1_Load
Вставьте это:
MMControl1.Command =“Open” ‘откроет муз.устройство.
А, в Form1_Terminate:
MMControl1.Command =“Close” ‘закроет его, давай жить
‘и другим.
Последнее важно! Иначе, потом, до перезапуска всей Win-
dows, вам, работы с плеерами в других программах, не видать
как своих ушей! По причине: “Устройство занято”. Подстра-
ховавшись, мы теперь, наладим сам контрол (MMControl).
Откроем его панель свойств и к ”Сustom”, и в Devise Type, там
впишите: ”WaveAudio”. А, в FileName, нажав на кнопочку
сбоку, установите, какой wav - файл хотите слышать.
Я полагаю, что вы имеете папку Media? Там, поставляемые с
Виндом, звуки... Или укажите на свой.
Если, хотите слы-шать *.mid? То, дос-таточно изменить тип
устройства на “Secquencer” и ука-зать путь к нему. Это можно
и в процессе выполнения программы, например:
MMControl1. Devise Type= “Secquencer” и
MMControl1. FileName= “с:\Windows\media\ваш выбор.mid”
Все?
Ну, интервал таймеру, задайте по вкусу, у меня он на 1000..
Ах, да насчет носа, добавьте еще пару строк.
Напишите для Label1 :
Чтоб техт менять, в события Label1, такие как Click и КeyUp,
тисните: Slovo = InputBox ("Я слушаю, вводите слова..")
Еще подмахните:
label1.Сaption= Slovo
Select Case Label1.Сaption
Case “Label”
Slider1.Value=2
Case “Any!”
Slider1.Value=0
Case “”
Slider1.Value=1
End Select
В заголовке, запроса, вы увидите имя проекта. У меня -
“мальчик”.
Вот и все, комп, проверит состояние метки, и соответственно,
отреагирует. Попробуйте наварить побольше опций, будет
выглядеть “разумным”. При энтузиазме, сделайте базу данных
и... Я же, только пример, вам даю.
В принципе, имея микрофон, можете записать самих себя и
комп будет говорить Вашим голосом. Для записи, в контроле,
есть команда “Record“, синтаксис, тоже, очень прост, достаточ-
но написать:
MMControl1.Command =“Record” ‘ записываем звук
Добавьте еще кнопку(и):
MMControl1.Command =“Stop” ‘ останавливаем запись
MMControl1.Command =“Save” ‘ записываем свои трели
‘ на жесткий диск
Помните, что запишет, под тем именем, что было в последний
раз задействовано, сами позаботьтесь об этих мелочах. Я уверен,
что научил вас программировать, а в противном случае, кричите
”Караул!” или что покрепче.
......................................................................
Ну, пора и честь знать.
Советую вам купить мой СD, он с работающими примерами и
не только с моими. Подборка вопросов и ответов по VB, из
конференций, сайтов, в виде файла Ворда, объем ее, более 200
стр., форматом, как моя. Есть и ссылки на всевозможные сайты..
По теме: VB
Плюс утилиты к Бейсику и не только...
Что скажете, найдя на диске OpenGl32 для Бейсика? И с
примерами, как делать кино? С OpenGl32, VB, творит чудеса с
графикой. На уровне Doom’а или там, 3D Studio, Photoshop’а ...
А лучшая книга всех времон и народов, по API ? Даниеля
Эпплмана “VisualBasic Programmer’s Guide to the Win32
API” ?! Оформленная, кем-то, в хелп - файл...
Полный рассказ об диске, это еще 1 книжка, объемом с эту..
Чесслово, помоему, на CD, на всё есть ответ, по VB6.0 также.
Иосиф Гарцман.
Мои координаты в начале книги.
Ваше Оглавление
Записывайте, по мере прочтения, нужные вам ссылки, по своему вкусу.
? Часть 1 Знакомство с Бейсиком. ( стр.4 - 16 )
? Часть 2 Эксперименты с логикой компа. ( стр.17 - 41 )
? Часть 3 Немного о графике и анимации. ( стр.42 - 67 )
? Часть 4 Галопом по Эвропам. ( стр.68 - 77 )
66
Часть4, Галопом по европам и я делаю вам ручкой...
69
Гарцман Иосиф. "Визуал Бейсик изначальный"
Часть4, Галопом по европам и я делаю вам ручкой...