Help (Азбука морзе на Visual Basic)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
proffi1309
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.03.2013 (Вс) 13:40

Help (Азбука морзе на Visual Basic)

Сообщение proffi1309 » 10.03.2013 (Вс) 13:44

Добрый день.

Написал азбуку морзе на VB. Осталось только подключить звуки к ней, использовал:


Код: Выделить всё
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long



Ну а воиспроизвожу с помощью:

Код: Выделить всё
Console.Beep(, )


1) Данные звуки воспроизводятся с большим промежутком, как это исправить.
2) Нужно что бы в текстбоксе находило всего 4 символа - это "[" "]" "." "-", при этом воспроизводя соответсвующий звук.
Должно быть что-то типо такого, если первый символ равен "[" то программа молчит, далее второй равен "-" программа издает звук и т.д., что бы все символы перебрала не зависимо сколько их в текстбоксе.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Help (Азбука морзе на Visual Basic)

Сообщение Mikle » 10.03.2013 (Вс) 16:09

Не понял, при чём тут "Console." и зачем символы "[" и "]"?
На форме текстбокс, код:
Код: Выделить всё
Option Explicit

Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Click()
  Dim i As Long
  Dim s As String

  For i = 1 To Len(Text1.Text)
    s = Mid(Text1.Text, i, 1)
    Select Case s
      Case "."
        Beep 2000, 75
        Sleep 100
      Case "-"
        Beep 2000, 300
        Sleep 100
      Case " "
        Sleep 200
    End Select
  Next i
End Sub

Вписывай морзянку в текстбокс и кликай по форме, пробелы - для пауз.

proffi1309
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.03.2013 (Вс) 13:40

Re: Help (Азбука морзе на Visual Basic)

Сообщение proffi1309 » 10.03.2013 (Вс) 20:31

Mikle писал(а):Не понял, при чём тут "Console." и зачем символы "[" и "]"?


Немного не пойму почему у меня beep и sleep не работаею, попробовал с Console работает, kernel32 не отвечает, не знаю почему...

"[" и "]" это я использую для разделения символов, потому что пробел в морзе имеет тоже свой код.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 10.03.2013 (Вс) 20:52

VB6 от VB.NET точно отличаем?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Help (Азбука морзе на Visual Basic)

Сообщение Mikle » 11.03.2013 (Пн) 9:55

proffi1309 писал(а):не пойму почему у меня beep и sleep не работаею, попробовал с Console работает, kernel32 не отвечает, не знаю почему...

Какой бейсик? vb.net, что ли?
Я сначала подумал, что vb6 потому, что эта декларация для него:
Код: Выделить всё
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

В vb.net, как минимум, вместо As Long было бы As Integer.

proffi1309
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.03.2013 (Вс) 13:40

Re: Help (Азбука морзе на Visual Basic)

Сообщение proffi1309 » 11.03.2013 (Пн) 16:37

Спасибо большое, все работает!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 84

    TopList