forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Visual Basic (http://forum.boolean.name/forumdisplay.php?f=62)
-   -   Progress Bar в Visual Basic 6.0 (http://forum.boolean.name/showthread.php?t=13255)

{{BLaZe_RoX}} 31.08.2010 05:05

Progress Bar в Visual Basic 6.0
 
Мне интересен вопрос: можно ли в vb6 сделать вот так:
При нажатии на кнопку Command_Button1 Прогрес бар начинает прогружаться(например полная прогрузка будет 10 секунд), и по завершению загрузки прогресс бар выполняется действие(например в PictureBox появляется картинка)
???

den 31.08.2010 09:43

Ответ: Progress Bar в Visual Basic 6.0
 
Да.
Создаёш у себя на форме: прогрес бар, таймер(выключенный), картинку, кнопку.
В событие нажитии кнопки - запускаеш таймер.
В событии "тиканья" таймера - приплюсовываеш к прогресс бару некую величину.
Туд же ставиш условие - если прогресс бар полон (тоесть значение равно максимальному значению) то ставиш картинку на пикчер бокс:)

{{BLaZe_RoX}} 31.08.2010 10:06

Ответ: Progress Bar в Visual Basic 6.0
 
Den, спасибо за ответ)
но у меня почему то чтобы прогресс бар заполнялась приходится каждый раз самому жать на кнопку...я что то не так понял, если не затрудняю напиши код, буду очень благодарен!)

den 31.08.2010 10:20

Ответ: Progress Bar в Visual Basic 6.0
 
PHP код:

Public Class Form1

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Timer1
.Start()
    
End Sub

    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        
If (ProgressBar1.Value ProgressBar1.MaximumThen
            ProgressBar1
.Value += 1
        End 
If
        If (
ProgressBar1.Value ProgressBar1.MaximumThen
            
'бладж!!! Тут вделаеш то что тебе надо!!!
        End If
    End Sub
End Class 


{{BLaZe_RoX}} 31.08.2010 10:37

Ответ: Progress Bar в Visual Basic 6.0
 
:4to: этот код vb 6 ругает почти каждую строку...
помойму это для vb.net..) видимо ты не понял вопроса(я просил для шестой версии)

den 31.08.2010 10:42

Ответ: Progress Bar в Visual Basic 6.0
 
Цитата:

помойму это для vb.net..)
да, это для vb.net
Цитата:

видимо ты не понял вопроса(я просил для шестой версии)
извени, не заметил:)

{{BLaZe_RoX}} 31.08.2010 10:48

Ответ: Progress Bar в Visual Basic 6.0
 
а ты для vb 6 знаешь??

St_AnGer 31.08.2010 11:47

Ответ: Progress Bar в Visual Basic 6.0
 
Блин, VB6 не трогал уже лет 5, точно что и как не помню. Скажу по мелочам.
1) Private Sub Button1_Click и Private Sub Timer1_Tick должны быть вне процедуры Private Sub Form1;
2) На сколько я помню, то не Timer1_Tick, а Timer1_Timer (так вроде должно будет работать), и в параметрах у этой функции/подпрограммы ничего не указывается;
3) Должен быть настроен интервал тикания таймера (изначально помоему 0 стоял). На сколько помню на VB6 интервал 1000 = 1 сек;
4) Button1_Click так же не должна никаких параметров содержать;
5) Не Timer1.Start, а Timer1.Enable = true, если опять же память не изменяет.

т.е. в итоге должно получиться что то такое:
Код:

private sub Form1_Load()

end sub

Private Sub Button1_Click()
  Timer1.Enable = true
End Sub

Private Sub Timer1_Timer()
    'ля ля ля, работа с таймером
    'не могу на память сказать что там с ProgressBar
    'т.к. не имею VB под рукой
End Sub

да и вообще в VB при создании элемента и двойном клике на него процедура для этого элемента добавляется автоматически. Остаётся только в ней написать нужный тебе код.


UPD Попробуй заполнение сделать циклом в процедуре обработки кнопки! Это проще чем таймером, и работать будет точно как надо.

SBJoker 31.08.2010 15:27

Ответ: Progress Bar в Visual Basic 6.0
 
Код таймера такой должен быть:
Код:


   
Private Sub Timer1_Timer)
       
If ProgressBar1.Value < ProgressBar1.MaxThen
            ProgressBar1
.Value =
ProgressBar1.Value +1
        End
If
        If
ProgressBar1.Value >= ProgressBar1.MaxThen
           
'бладж!!! Тут вделаеш то что тебе надо!!!
        End If
    End Sub


{{BLaZe_RoX}} 31.08.2010 15:55

Ответ: Progress Bar в Visual Basic 6.0
 
Код:

Private Sub Form1_Load()

End Sub

Private Sub Button1_Click()
  Timer1.Enable = True
End Sub



Private Sub Timer1_Timer()
        If ProgressBar1.Value < ProgressBar1.Max Then
            ProgressBar1.Value = ProgressBar1.Value + 1
        End If
        If ProgressBar1.Value >= ProgressBar1.Max Then
            Text1.Text = rrrrr
        End If
    End Sub

то есть, вы имели ввиду что все должно в итоге выглядеть так?
Если да, то прогресс бар даже не начинает так сказать наполняться...
Пожалуйста напишите кто нибудь полный код...всю программу.. А то получается, что один человек знает один кусок программы, другой человек - другой кусок...а в итоге ничего не получается...Но всем ранее отвечавшим, всё равно большое спасибо!):)

den 31.08.2010 16:02

Ответ: Progress Bar в Visual Basic 6.0
 
Это и есть вся программа!
На форму перетащи руками прогрес бар, кнопку, таймер.
Дважды кликне по кнопке - появится событие Button1_Click()
по таймеру - imer1_Timer()
остальное впиши(скопируй)
Цитата:

Но всем ранее отвечавшим, всё равно большое спасибо!)
если хочеш сказать спасибо, нажимай на соответствующую кнопку под постом.

{{BLaZe_RoX}} 31.08.2010 16:17

Ответ: Progress Bar в Visual Basic 6.0
 
нихрена эта прога не работает
сами проверьте:(

den 31.08.2010 16:23

Ответ: Progress Bar в Visual Basic 6.0
 
Цитата:

нихрена эта прога не работает
пля, хочеш я тебе ехешник покажу??

{{BLaZe_RoX}} 31.08.2010 16:24

Ответ: Progress Bar в Visual Basic 6.0
 
давай

SBJoker 31.08.2010 16:27

Ответ: Progress Bar в Visual Basic 6.0
 
У топикстартера нехватает ума назвать объекты _точно_также_ как они названы в коде.


Часовой пояс GMT +4, время: 16:46.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot