как юзать таймер??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

как юзать таймер??

Сообщение Павлуша » 01.01.2005 (Сб) 19:49

Не посчитайте меня глупым. :) просто я новичок!
Меня интересует как использовать таймер для прокрутки времени! Ну т.е.
вот я пишу собств. аудио-плеер мне надо сделать так чтоб время которое осталось до окончания песни высвечивалось на Label'е. Кто знает ОЧЕНЬ прошу напишите!

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 01.01.2005 (Сб) 20:57

Сдесь проще считать время, допустив в секундах и отнимать по секунде от общей длительности звучания. В таймере ставишь

NumOfSeconds = NumOfSeconds - 1

Интервал таймера на тысячу миллисекунд (1 секунду) - 1000.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 02.01.2005 (Вс) 8:47

Для вывода времени также можеш воспользоваться этим кодом.Он будет отображать время в часах, минутах и секундах.
Код: Выделить всё
dim sec as long ' sec - это количество секунд которых имеет песня

Private Sub Timer1_Timer()
Dim Minutes As Integer, Hours As Integer, seconds As Integer
sec = sec - 1
seconds = sec
Hours = (seconds \ 3600)
seconds = seconds - Hours * 3600
Minutes = seconds \ 60
seconds = seconds - Minutes * 60
lblTime.Caption = Hours & ":" & Minutes & ":" & seconds ' lblTime - это Label, котрый выводит время песни
End Sub

الفيجوال بيسك الرابح

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 02.01.2005 (Вс) 10:31

Для вывода времени также можеш воспользоваться этим кодом.Он будет отображать время в часах, минутах и секундах.

Да но если только будет уже известна Длительность файла в секундах. А как я понял Павлу это не известно.
Я предполагаю, что ты Павел юзаешь стандартный компонент MS Multimedia Control. Тогда я предлагаю следующую процедуру нахождения времени:
Код: Выделить всё
Option Explicit
'вводим переменные для хранения данных
    Dim lng As Long
    Dim s As Long
    Dim m As Long
    Dim h As Long
    Dim s2 As String
    Dim m2 As String
    Dim h2 As String

Private Sub Command1_Click()
' очищаем переменные
lng = 0: s = 0: m = 0: h = 0
   
' указываем длину файла в секундах
  ' создаем функцию перевода длины в секундный формат
    ' MMC1 - это в примере имя твоего MS Multimedia Controls
    lng = MMC1.Length
    If lng = 0 Then Exit Sub
   
    m = lng \ 60000
    s = lng - 60000 * m

    If 1000 - s > 0 Then s = "0"
    If s > 10000 Then
        s = Mid(s, 1, 2)
    Else
        s = Mid(s, 1, 1)
    End If
   
    h = "0"
   
    If m > 60 Then
    h = m \ 60
    m = m - h * 60
    End If
   
    If s < 10 Then s2 = 0 Else s2 = ""
    If m < 10 Then m2 = 0 Else m2 = ""
    If h < 10 Then h2 = 0 Else h2 = ""

    Text2.Text = h2 & h & ":" & m2 & m & ":" & s2 & s
    Text3.Text = h2 & h & ":" & m2 & m & ":" & s2 & s

End Sub

Private Sub mediaTime_Timer() ' mediaTime - имя твоего таймера с интервалом 500
' делаем процедуру нахождения и получения позиции
' + сколько времени осталось до конца
    lng = MMC1.Length - MMC1.Position
    If lng = 0 Then Exit Sub
   
m = lng \ 60000
s = lng - 60000 * m
    If 1000 - s > 0 Then s = "0"
    If s > 10000 Then
        s = Mid(s, 1, 2)
    Else
        s = Mid(s, 1, 1)
    End If
h = "0"
   
    If s + m + h = 0 Then
        MMC1.Command = "stop"
        MMC1.Command = "close"
        mediaTime.Enabled = False
    End If
   
    If m > 60 Then
    h = m \ 60
    m = m - h * 60
    End If
   
    If s < 10 Then s2 = 0 Else s2 = ""
    If m < 10 Then m2 = 0 Else m2 = ""
    If h < 10 Then h2 = 0 Else h2 = ""

    Text3.Text = h2 & h & ":" & m2 & m & ":" & s2 & s

End Sub


Данный пример приминим только к MMC, конечно же лучше всего использовать свой Компонент, или же функцию API. Если ты пользуешься не MMC а чем то другим, то скажи чем, попробую помочь.
No comments ...


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68

    TopList