Progress Bar

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vellan
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 06.05.2002 (Пн) 1:21
Откуда: Russia

Progress Bar

Сообщение Vellan » 13.09.2003 (Сб) 18:25

Public Function DownloadFile(FromPathName As String, ToPathName As String)
If URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 Then
DownloadFile = True
RaiseEvent DownloadComplete(FromPathName, ToPathName)
Else
DownloadFile = False
RaiseEvent ErrorDownload(FromPathName, ToPathName)
End If
End Function
How to do progress bar for this code, which download file from remote server?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.09.2003 (Вс) 7:00

No way for this code.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vellan
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 06.05.2002 (Пн) 1:21
Откуда: Russia

Сообщение Vellan » 15.09.2003 (Пн) 10:52

А для какого можно?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.09.2003 (Пн) 15:28

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
PBar.Max = ProgressMax
If Progress = -1 Then
Exit Sub
Else
If Progress <> ProgressMax Then
PBar.Value = Progress
progresslbl.Caption = Str(Round((Progress / ProgressMax) * 100)) & pert
Else
PBar.Value = ProgressMax
progresslbl.Caption = Str(Round((Progress / ProgressMax) * 100)) & pert
Exit Sub
End If
End If
End Sub

или такой вариант:

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
If Progress = -1 Then ProgressBar1.Value = 100
If Progress > 0 And ProgressMax > 0 Then
ProgressBar1.Value = Progress * 100 / ProgressMax
End If
Exit Sub
End Sub

или такой вариант:

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
ProgressBar1.Max = ProgressMax
ProgressBar1.Value = Progress
ProgressBar1.Refresh
End Sub

Vellan
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 06.05.2002 (Пн) 1:21
Откуда: Russia

Сообщение Vellan » 15.09.2003 (Пн) 19:05

тока где она файлы качает?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.09.2003 (Вт) 17:07

Уууух, извиняюсь - этот код для WebBrowser я совсем не в тему вставил...

А чтобы можно было прогресс мерять, - сам подумай, - надо знать полный размер файла...

После этого в процессе загрузки пользуйся формулой:

% загрузки = 100 * (уже загружено) / (полный размер файла)...

Так что сначала надо узнать размер "того" :) файла...

Vellan
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 06.05.2002 (Пн) 1:21
Откуда: Russia

Сообщение Vellan » 18.09.2003 (Чт) 20:18

Тогда вопрос. Как цепануть кол-во скачанных байт? Они должны в Tempif валяться, а как узнать где точно?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 18.09.2003 (Чт) 21:15

Мне кажется, что файл в процессе загрузки не пишется в Temporary Internet Files...
Я думал, что в Вашей программе он загружается в переменную типа String или Variant. В этом случае количество загруженных байт:
Len(Ваша_Переменная)


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 13

    TopList