Всё, что связано с Progressbar в Visualbasic

Тема в разделе "Visual Basic", создана пользователем BlackShadow, 5 фев 2011.

  1. BlackShadow

    BlackShadow Well-Known Member

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    Вот исходник.

    Посмотреть вложение ___________________.rar

    Не знаю, почему, но он ругается на строку:

    Код (LotusScript):
    ProgressBar1.Value = ProgressBar1.Value + FileLoadSize
    в общем коде для таймера (я использую ProgressBar для загрузки файлов):

    Код (LotusScript):
    Private Sub Timer1_Timer()

    Timer1.Enabled = True
    Status.Visible = True
    ProgressBar1.Visible = True

    If CommonDialog1.FileName <> "" Then
    FileMaxSize = FileLen(CommonDialog1.FileName) / 1024
    FileMaxSize = Format(FileMaxSize, "0.00")
    InfoFile.Caption = "Путь файла: " & CommonDialog1.FileName & "Размер: " & FileMaxSize

    intFH = FreeFile                                    'свободное имя
    Open CommonDialog1.FileName For Input As intFH   'открываю с помощью диалога
    Do Until EOF(intFH)                              'считываю файл
    Line Input #intFH, strString                        'строки считывания
    Txt = Txt & strString & vbCrLf      'присвоение данных переменной и вставление переноса на новую строку
    FileLoadSize = Len(Txt) / 1024    'размер загруженной строки
    FileLoadSize = Format(FileLoadSize, "0.00") 'округляю до килобайт
    ProgressBar1.Max = FileMaxSize  'присвоение макс.значения прогрессбара
    ProgressBar1.Value = ProgressBar1.Value + FileLoadSize  'присвоение настоящего значения прогрессбара
    Percent = Fix(ProgressBar1.Value / ProgressBar1.Max * 100)  'создаю процент загрузки
    Status.Caption = "Загрузка файла: " & ProgressBar1.Value & "Кб из " & ProgressBar1.Max & "Кб (" & Percent & "%)"

    If ProgressBar1.Value >= ProgressBar1.Max Then
    Timer1.Enabled = False
    Status.Visible = False
    ProgressBar1.Visible = False
    TxtArea.Text = Txt
    End If

    Loop
    Close #intFH
    End If
    End Sub

    Если не трудно - просмотрите исходник, протестируйте ФАЙЛ - ОТКРЫТЬ ДОКУМЕНТ
    и выбрав ЛЮБОЙ файл (абсолютно), то увидите, что последние килобайты не догружает и говорит, типа неправильная строка в этой строке

    Код (LotusScript):
    ProgressBar1.Value = ProgressBar1.Value + FileLoadSize
    Помогите, пожалуйста, решить проблему
     
  2. AndrewSpider

    AndrewSpider Гость

    Код (LotusScript):
    ProgressBar1.Value = ProgressBar1.Value + FileLoadSize
    ProgressBar1 надо не килобайтах, а прямо в байтах, который возвращает функция FileLen() и len(). Скорее всего при деление на 1024 число округляется и поэтому последняя часть не влазит
    ProgressBar1.Value не может быть больше ProgressBar1.Max
     
  3. AndrewSpider

    AndrewSpider Гость

    Вот мой вариант, бинарно только считываю;D
     

    Вложения:

    • ss.rar
      Размер файла:
      3,4 КБ
      Просмотров:
      9
Загрузка...

Поделиться этой страницей