Страница: 1 | 2 | 3 |
Вопрос: работа со звуком
Добавлено: 15.05.10 22:54
Автор вопроса: Александр
может кто нибудь в курсе как сделать чтобы мерцание обьекта ( задаю с помощью таймера Form1.Timer1.Interval = 500 / interval1 вводя interval1 ) совпадало с пишанием внутреннего динамика ???
хотелось бы позже использовать этот код в ActiveX (*.ocx)
заранее очень благодарен
Ответы
Всего ответов: 37
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 16.05.10 11:22
что мерцает, как мерцает, как выдается звук?
Номер ответа: 2
Автор ответа:
Vitya
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 16.05.10 13:37
Private Sub Timer1_Timer()
IF Label1.Visible = 1 then
Label1.Visible = 0 'Прячем или показываем например елемент
Beep() 'А вот и звук динамика
Else
Label1.Visible = 1
Beep()
End if
Номер ответа: 3
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #3
Добавлено: 17.05.10 20:29
мерцает индикатор (круг; цвет и форму которогу задаю сам)
мерцает с частотой которую так же задаю сам ( Form1.Timer1.Interval = 1000 / interval1 'в герцах )
в итоге требуется чтобы мерцание сопровождалось звуком (синхронным пиканьем) внутреннего динамика.......
Номер ответа: 4
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #4
Добавлено: 17.05.10 20:41
КОД ФОРМЫ С НАСТРОЙКАМИ ИНДИКАТОРА
Option Explicit
Private Sub Command1_Click()
Call perv_ind
Form1.Visible = True
Form1.Show
End Sub
Private Sub Form_Load()
Form2.Visible = True
Form1.Show
Call nach_sost
End Sub
Private Sub Option7_Click()
Option9.Enabled = True
Option10.Enabled = True
Text2.Visible = True
End Sub
Private Sub Option8_Click()
Option9.Enabled = False
Option10.Enabled = False
Text2.Visible = False
End Sub
Private Sub Picture1_Click()
CommonDialog1.ShowColor 'подключаем с помощью CommonDialog1 цветовую гамму
Picture1.BackColor = CommonDialog1.Color 'закрашиваем Picture1 выбранным цветом
color1 = CommonDialog1.Color
cvet = True 'установка что цвет выбран
End Sub
КОД ФОРМЫ С ИНДИКАТОРОМ
Option Explicit
Private Sub Form_DblClick() 'обработка события двойного клика
Call nach_sost 'вызов процедуры установки нач. сост.
Form1.Picture1.BackColor = &H8000000F 'установка серого фона в Picture1
Show
Picture1.DrawWidth = 1 'установка толщены линии
Picture1.Scale (0, 0)-(20, 30) 'установка масштаба
Form2.Show 'показываем 2ую форму
Form1.Visible = True 'скрываем первую
End Sub
Private Sub Timer1_Timer() 'обработка таймера
Form1.Timer1.Interval = 1000 / interval1 'установка таймера
Form1.Picture1.FillStyle = 0 'разрешение заливки
Form1.Picture1.FillColor = color1 'установка цвета заливки
Form1.Picture1.DrawWidth = 15 'установка толщены линии
If stop_merc = False Then timer1_flag1 = True 'проверка на состояние мерцания
If timer1_flag1 = False Then ' закрашиваем область пямоугольником
Form1.Picture1.Line (0, 0)-(20, 30), &H8000000F, BF
timer1_flag1 = True
Else
If ind1_f = True Then
Form1.Picture1.Circle (10, 15), 4, color1 ' закрашиваем область типом индикатора(круг)
Form1.Picture1.DrawWidth = 1
Form1.Picture1.Circle (10, 15), 8, vbBlack
Else
Form1.Picture1.Circle (10, 15), 4, color1, , , -0.6 ' закрашиваем область типом индикатора(эллипс)
Form1.Picture1.DrawWidth = 1
Form1.Picture1.Circle (10, 15), 8, vbBlack, , , -0.6
End If
timer1_flag1 = False
End If
End Sub
КОД МОДУЛЯ
Option Explicit
Public color1 As ColorConstants 'переменная для цвета 1-ого индикатора
Public stop_merc As Boolean 'переменная для прекращения мерцания
Public ind1_f As Boolean 'переменные тип фигур круг или эллипс
Public cvet As Boolean 'переменная для выбора цвета
Public timer1_flag1 As Boolean
Public kol_figur As Integer 'переменая кол-ва индикаторов
Public interval1 As Single 'переменные для интерввала каждого таймера
Sub nach_sost() 'процедура начального состояния
Form1.Label1.Caption = "" 'очищаем Label1
Form1.Timer1.Enabled = False ' останавливаем таймер1
Form1.Picture1.Cls 'очищаем Picture1
stop_merc = True 'нач. значение для мерцания
cvet = False 'нач. значение для выбора цвета
End Sub
Sub perv_ind() 'процедура обработки индикатора
Form1.Picture1.Cls
If Form2.Option5.Value = True Then 'проверка на тип индикатора
ind1_f = True
Else
ind1_f = False
End If
If cvet = False Then 'проверка на выбран ли цвет
MsgBox "Введите цвет", 48, "ERROR"
Exit Sub
End If
If Form2.Text1.Text = "" Then 'проверка на выбрано ли имя
MsgBox "Введите имя", 48, "ERROR"
Exit Sub
Else
Form1.Label1.Caption = Form2.Text1.Text 'присваеваем имя
End If
If Form2.Option7.Value = True Then 'проверка на параметры мерцания
If Form2.Text2.Text = "" Or IsNumeric(Form2.Text2.Text) = False Then 'введена ли частота
MsgBox "Введите число в окне 'Частота'", 48, "ERROR"
Exit Sub
End If
If Form2.Text2.Text <= 0 Or Form2.Text2.Text > 500 Then 'в правильность ввода частоты
MsgBox "Введите число в дапазоне от 1..500", 48, "ERROR"
Exit Sub
End If
interval1 = Form2.Text2.Text 'присваевание частоты интервалу
' Call clear 'очищаем все элементы для задания следующему индикатору параметров
Form1.Timer1.Enabled = True 'вкл. таймер
Form1.Show 'проверка на правильные условия показания индикатора
Else
Form1.Timer1.Enabled = False
Form1.Picture1.FillStyle = 0
Form1.Picture1.FillColor = color1
Form1.Picture1.DrawWidth = 15
If ind1_f = True Then
Form1.Picture1.Circle (10, 15), 4, color1
Form1.Picture1.DrawWidth = 1
Form1.Picture1.Circle (10, 15), 8, vbBlack
Else
Form1.Picture1.Circle (10, 15), 4, color1, , , -0.6
Form1.Picture1.DrawWidth = 1
Form1.Picture1.Circle (10, 15), 9, vbBlack, , , -0.6
End If
End If
End Sub
Sub clear() 'процедура очистки экрана
cvet = False
Form2.Frame3.Caption = ""
Form2.Text2.Text = ""
Form2.Text1.Text = ""
Form2.Picture1.BackColor = &H8000000F
End Sub
Sub start() 'процедура установки параметров по умолчанию
Form2.Option5.Value = True
Form2.Option7.Value = True
Form2.Option10.Value = True
End Sub
Sub f_1() 'процедура установки Option если выбран один индикатор
Call start
kol_figur = 1
End Sub
Номер ответа: 5
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #5
Добавлено: 17.05.10 20:42
вот код)))
Номер ответа: 6
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #6
Добавлено: 17.05.10 20:42
токо помоему должно быть ещё воть
Номер ответа: 7
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #7
Добавлено: 17.05.10 20:43
спасибо, попробую применить в своём случае
Номер ответа: 8
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #8
Добавлено: 17.05.10 20:46
когда у тебя сформа заливается (в этот же момент кода) поставь Beep(), и не забудь про декларацию в самомверху в general.
Номер ответа: 9
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #9
Добавлено: 17.05.10 20:47
спасибо, попробую применить в своём случае
это была деклорация! вызов пикалки BIOS - Beep(частота, продолжительность)!
Номер ответа: 10
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #10
Добавлено: 17.05.10 20:50
да, но это не главное, нужно ещё ведь прописать пищание
Номер ответа: 11
Автор ответа:
Александр
Вопросов: 3
Ответов: 23
Профиль | | #11
Добавлено: 17.05.10 20:56
БОЛЬШОЕ СПАСИБО ))))
всё получилось))
теперь только осталось в ActiveX-компонент замутить...
Номер ответа: 12
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #12
Добавлено: 17.05.10 20:58
а вообще моно без ухищерений -
label1 заливаем, всё это в цикде (Loop), но как из него выходить тебе надо? я сделал по нажатию кнопки.
Номер ответа: 13
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #13
Добавлено: 17.05.10 21:02
актив ха я не мутил, а зачем? сделалай под модуль процедуру, ту что без ухищирений под модуль проще портировать, могу дать код под модуль. из форму пишешь всего - то -
напиример в модуле
Номер ответа: 14
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #14
Добавлено: 17.05.10 21:04
хотя, может быть надо. но, ничем немогу помочь. здесь есть др. люди, они знают. добрый Ilja (извиняюсь если очепятка) может помочь.
Номер ответа: 15
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #15
Добавлено: 17.05.10 21:06
Раста скорбит, смекая, что его эмоции после прочтения этого диалога нельзя выразить смайликом. Бо (