Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: работа со звуком Добавлено: 15.05.10 22:54  

Автор вопроса:  Александр
может кто нибудь в курсе как сделать чтобы мерцание обьекта ( задаю с помощью таймера Form1.Timer1.Interval = 500 / interval1 вводя interval1 ) совпадало с пишанием внутреннего динамика ???
хотелось бы позже использовать этот код в ActiveX (*.ocx)
заранее очень благодарен

Ответить

  Ответы Всего ответов: 37  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #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-сайт: moscowdevils.ru
 Профиль | | #6
Добавлено: 17.05.10 20:42
токо помоему должно быть ещё воть
  1. Public Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Ответить

Номер ответа: 7
Автор ответа:
 Александр



Вопросов: 3
Ответов: 23
 Профиль | | #7 Добавлено: 17.05.10 20:43
спасибо, попробую применить в своём случае

Ответить

Номер ответа: 8
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #8
Добавлено: 17.05.10 20:46
когда у тебя сформа заливается (в этот же момент кода) поставь Beep(), и не забудь про декларацию в самомверху в general. :)

Ответить

Номер ответа: 9
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #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-сайт: moscowdevils.ru
 Профиль | | #12
Добавлено: 17.05.10 20:58
а вообще моно без ухищерений -
  1.  
  2. Public Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
  3. Dim exit As Integer
  4. Private Sub btnMercat()
  5. Do While exit = 0
  6. IF Label1.Visible = 1 then
  7. Label1.Visible = 0 'Прячем или показываем например елемент
  8. Beep() 'А вот и звук динамика
  9. Else
  10. Label1.Visible = 1
  11. Beep()
  12. End if
  13. Loop
  14.  
  15. Private Sub Command1.Click()
  16. exit = 1
  17. End Sub


label1 заливаем, всё это в цикде (Loop), но как из него выходить тебе надо? я сделал по нажатию кнопки.

Ответить

Номер ответа: 13
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #13
Добавлено: 17.05.10 21:02
актив ха я не мутил, а зачем? сделалай под модуль процедуру, ту что без ухищирений под модуль проще портировать, могу дать код под модуль. из форму пишешь всего - то -
  1. ИМЯ Процедуры в модуле

напиример в модуле
  1. Sub Enter()
а в форме вызыв этого будет такой -
  1. Enter
запихни всё без гемора в модуль, и прадавай. :)

Ответить

Номер ответа: 14
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #14
Добавлено: 17.05.10 21:04
хотя, может быть надо. но, ничем немогу помочь. здесь есть др. люди, они знают. добрый Ilja (извиняюсь если очепятка) может помочь. :)

Ответить

Номер ответа: 15
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #15
Добавлено: 17.05.10 21:06
Раста скорбит, смекая, что его эмоции после прочтения этого диалога нельзя выразить смайликом. Бо (

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам