Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тормозит форма / 10 сообщений из 10, страница 1 из 1
31.03.2006, 23:34:10
    #33638783
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Вот есть у меня форма, в ней 2 фрейма с 3 картинками Image каждая где-то по 320кб, создаю я 4 фрейм и там я делаю анимацию....Нажимаю клавишу запуска анимации и форма повисла....Как от этого можно избавиться?
...
Рейтинг: 0 / 0
31.03.2006, 23:35:32
    #33638786
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Для подробного описания анимации:
Я создаю ещё одно поле Image 320кб, а на нём ещё 1 поле, и по нажатию клавиши запуска меняются его координаты Image.Left и Image.Top
...
Рейтинг: 0 / 0
01.04.2006, 14:27:43
    #33639085
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
1) Создаешь чем? массивом элементов?
2) Движение картинок - дело тяжелое.
3) Лучше дай код. (где виснет)
...
Рейтинг: 0 / 0
01.04.2006, 19:40:03
    #33639264
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
1) Да массивом элементов
2) Ну очень надо
3) Ну я организую движение с помощью цикла For..Next ну вот у меня проходит первый цикл, картинка смещяется, и всё...дальше недвигается.
...
Рейтинг: 0 / 0
02.04.2006, 15:11:16
    #33639671
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
1) Формат картинки? BMP - тогда ладно, если JPG то перебор.
2) ТАк двигаешь?
Код: plaintext
1.
2.
   For i =  1  To  2000 
      Image1.Left = i
   Next i
А через таймер?
3) Лучше дай код, не очень понятна задача.
...
Рейтинг: 0 / 0
02.04.2006, 15:37:41
    #33639691
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Двигаю именно так, картинки пробовал и JPG и BMP. Попробовал и на VB.NET посчитал что он удобней и начал делать на нём, всё равно такие же тормоза. А как сделать через таймер? Чтоб по нажатию клавиши включался таймер значение i изменялось, когда необходимое значение достигнуто таймер остановился и процесс можно повторить ещё раз...код можно и на VB и на VB.NET
...
Рейтинг: 0 / 0
02.04.2006, 19:39:49
    #33639846
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Ставишь таймер на форму, и в Timer1_Timer прописываешь что надо.
Timer1.Enabled=True пошел
=False стоп
Interval - время задержки в мс

при нажатии на кнопку обнуляешь i (i должно быть глобально для формы)

BMP сколько весил?
Если JPG весил 300Кб то BMP должен более мега весить... А на NET быстрее только из-зи оптимизации.
...
Рейтинг: 0 / 0
02.04.2006, 20:56:11
    #33639902
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Да у BMP размер где-то мег
Вот Код который я написал(писал на VB.NET вручную переводил на VB так что простите еси что не так,)
Вообщем объясню смысл анимации....Есть балиистический пистолет, он стреляет, шарик летит по параболе.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then ForNextT.Enabled = False 
 End Sub
Так должно быть?
...
Рейтинг: 0 / 0
02.04.2006, 21:10:17
    #33639911
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Вот немного подправил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        ExpDS1.Enabled=False        
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then 
          ForNextT.Enabled = False 
          ExpDS1,Enabled=True
          FrExpDSpeed.Enab;ed=True
          Shar.Left=x0
          Shar.Top=y0
        end if 
 End Sub

...
Рейтинг: 0 / 0
02.04.2006, 21:12:15
    #33639912
3ybacTuK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит форма
Ещё немного, что-то я постоянно всегда забываюь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        ExpDS1.Enabled=False        
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then 
          ForNextT.Enabled = False 
          ExpDS1,Enabled=True
          FrExpDSpeed.Enab;ed=True
          Shar.Visible=False
          Shar.Left=x0
          Shar.Top=y0
         end if 
 End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тормозит форма / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]