Автор вопроса: Боцман | Web-сайт:Rus-Skipper.narod.ru | ICQ: 295725312
Вообщем нужно показывать Picture как кадры фильма, с частотой кадров выставленной в TextBoxse.
И вот тут с Timer1.Interval = 1000 / Text1 происходит несовпадение дествительного и желаемого. Вот даже пример сделал.
Dim kadr As Long, T1 As Long, T2 As Long
Private Sub Command1_Click()
kadr = 0
T1 = Timer
Timer1.Interval = 1000 / Text1
Timer1.Enabled = True
Me.Caption = "Создаем поток"
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
T2 = Timer
Me.Caption = "Длительность фильма - " & T2 - T1 & "nae"
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Command1.Caption = "Пуск"
Command2.Caption = "Стоп"
Text1 = "15"
End Sub
Private Sub Timer1_Timer()
If kadr > 150 Then Command2_Click
kadr = kadr + 1
End Sub
Помогите разобратся, а-то уже крыша едет.
Заране благодарен.
Вообщем нужно показывать Picture как кадры фильма, с частотой смены кадров выставленной в TextBoxse. Просто выставил больше получиш старое кино, меньше тогда замедленный просмотр. Обшее количество кадров неизменно и известно.
И вот тут с Timer1.Interval = 1000 / Text1 происходит несовпадение дествительного и желаемого.
Что получается у меня при частоте смены кадров =15,
150 кадров показывают 12 секунд, при 30 7 секунд при 50
5 секунд, почему? В примере я даже не открываю фот о просто цикл, и вот он с ошибкой, ПОЧЕМУ.
во-первых, таймер имеет дискретность 55 мс, поэтому даже если указать 1 мс, тикать он будет раз в 55 мс. Более того, так как он дискретен 55, то если установить значение 60мс, то он сработает лишь спустя 110мс. Так что тебе еще повезло, что есть разница между "при 30 7 секунд при 50 5 секунд". Есть таймер с дикретностью 1 мс, но его нада юзать через АПИ.
Блин сто раз в примерах видел устоновки менее 55, да и в описании свойств таймера Timer1.Interval.min=55 не встречал.
Век живи, век учись и неучем помрёш. Насчет АПИ поищу,спс.
у меня то же самое: 11812, 7125, 4750
насколько я понимаю при низком интервале он совсем неточный, этот таймер...
хотя у меня даже при интервале 1000 он отсчитывает 10 секунд за ~10700мс х_х