Страница: 1 |
Страница: 1 |
Вопрос: Помогите!!!!
Добавлено: 20.08.04 20:35
Автор вопроса: Rooom
Люди помогите мне, я только начал изучать VB ! как перенести из текст бокса время ( в секундах ) на таймер? тоесть я указываю в текст боксе через скоко сек. например выключить комп. и жму кнопку... как? код если можно, не могу разобраться с секундами, можно указывать только в милисекундах=(((
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #1
Добавлено: 20.08.04 20:46
Timer1.Interval=CInt(Text1.Text)*1000
takim obrazom ty snachala pereobrazovyvaesh` v integer tvoe chislo, a potom umnozhaesh` na 1000, chto poluchit` v sekundah(1 sec=1000 millisec)
Udachi!
Номер ответа: 2
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #2
Добавлено: 20.08.04 20:47
A esche luchshe-vmseto CInt postavit` Val
takim obrazom esli tama bukvy est`, ono voz`met tol`ko pervye cifry. esli ih netu-budet nol`.....to est` tajmer "otklyuchitsya"
Номер ответа: 3
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #3
Добавлено: 20.08.04 20:53
>Timer1.Interval=CInt(Text1.Text)*1000
только вот больше 60 сек. нелбзя писать! Вот в этом то и кроется весь минус этого метода. Если уж с таймером то можно вот этот код:
Dim SecondsLeft as integer, NeedTime as Integer
Private Sub Command1_Click()
NeedTime = CInt(Text1.Text)
Timer1.Interval=1000
Timer1.enabled = true
end sub
Private Sub Timer1_Timer()
SecondsLeft = SecondsLeft + 1
If SecondsLeft >= NeedTime then
SecondsLeft = 0
[...
Твой код тут ...
...]
End if
End Sub
Номер ответа: 4
Автор ответа:
vb_lord
Вопросов: 7
Ответов: 45
Профиль | | #4
Добавлено: 20.08.04 21:28
Привет. Вот вариант без таймера. Может пригодится.
Private Sub Command1_Click()
On Error GoTo label_error:
 im user_time_interval As Double
 im start_time As Date
 im finish_time As Date
user_time_interval = CDbl(Text1.Text)
start_time = DateTime.Now
finish_time = DateTime.DateAdd("s", user_time_interval, start_time)
 o While DateTime.Now < finish_time
 oEvents
Loop
MsgBox ("user time interval"
label_error: If Err.Number = 13 Then
MsgBox ("number transform-fail"
Exit Sub
End If
End Sub
Макс. абс. погрешность - одна секунда.
Номер ответа: 5
Автор ответа:
Rooom
Вопросов: 1
Ответов: 2
Профиль | | #5
Добавлено: 20.08.04 23:50
Спасибо! а как тогда сделать чтоб в минутах можно было указывать?
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 20.08.04 23:56
заведи глобальную пееменную и при собитии в таймере, увеличивай ее а так же следи за ней...
Номер ответа: 7
Автор ответа:
Rooom
Вопросов: 1
Ответов: 2
Профиль | | #7
Добавлено: 21.08.04 00:33
знал бы я как =(((
Номер ответа: 8
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #8
Добавлено: 21.08.04 01:23
>Спасибо! а как тогда сделать чтоб в минутах можно было указывать?
См. мои ответ, только вместо
Timer1.Interval=1000
ставишь
Timer1.Interval=60000
Номер ответа: 9
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #9
Добавлено: 21.08.04 01:37
В самом верху текста, пишешь:
Dim tmr_cntr as long
Потом в таймере, скажем, выставил ты 1 сек. интервал (1000), и пишешь:
if tmr_cntr = 60 then
 ebug.Print "Прошла минута!"
Call MsgBox("Прошла минута!"
else
tmr_cntr = 0&
end if
Номер ответа: 10
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #10
Добавлено: 21.08.04 02:39
Можно вообще без таймера обойтись. А можно и с таймером. Как хочешь.
Даблклик по форме запускает таймер, а клик останавливает.
---
Private Timer_Enabled As Boolean
Private Sub Form_Click()
Timer_Enabled = False
End Sub
Private Sub Form_DblClick()
Timer_Enabled = True
VB_Timer
End Sub
Sub VB_Timer(Optional StopTimer As Boolean = False)
 im MyTime As String
 o
If Not Timer_Enabled Then Exit Sub
 oEvents
If MyTime <> Time$ Then MyTime = Time$: Me.Caption = MyTime
Loop
End Sub