И снова - прогресс бар

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

И снова - прогресс бар

Сообщение Summer.05 » 16.07.2006 (Вс) 2:43

Прошу не ругать.

Есть Form1, timer1, Adodc, Datagrid, Magicbuttom
Вопрос: как организовать работу прогрессбара во взсимосвязью со счетчиком Datagrid?
Привожу пример:

Dim time1 As Integer

Private Sub Form_Load()
Dim strMyString, retval
retval = DataGrid1.ApproxCount
End Sub


Private Sub MagicButton8_Click()
Timer1.Interval = 10
ARProgressBar1.Min = 1
ARProgressBar1.Max = retval
End Sub

Private Sub Timer1_Timer()
time1 = time1 + 1
If time1 < retval Then
ARProgressBar1.Value = time1
Label1.Caption = time1 & " %"
Label1.Caption = "0 %"
If time1 = retval Then
End If
End If
Form9.Show
End Sub


И...ничего..

Подскажите, пожалуйста!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 16.07.2006 (Вс) 2:50

Ужас...
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 16.07.2006 (Вс) 10:44

vvs_adm
Согласен, ужас..
Надоело сражаться. Не получается. Следовательно, нарушена логика алгоритма. Поэтому и попросил помощи
Сам по себе (без моего участия) прогрессбар работает. А вот привязка его к процедуре заполнения DataGrid не получется
Спасибо!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 16.07.2006 (Вс) 10:55

А как ты отличаешь MagicButton8 от MagicButton18. Ты по номерам запоминаешь, за что какая кнопка отвечает?
Мне б такую память :(
А
Код: Выделить всё
Dim strMyString, retval
- это зачем? Просто
Код: Выделить всё
Dim var12 as variant, var94 as variant
:lol:

P.S.: ну а если серьезно - включи опцию Option Explicit и сам сразу много чего увидишь. Странно, неужели кроме прогресс-бара остальное работает? :shock:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 16.07.2006 (Вс) 12:11

vvs_adm
Ты прав, я привел только ту часть кода, которая отвечает за прогрессбар. Остальное все работает.
Спасибо за ответ, буду пытаться.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 16.07.2006 (Вс) 12:22

Summer.05Можно конечно сказать... но когда сам найдешь - больше так точно делать не будешь ;)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 16.07.2006 (Вс) 14:21

vvs_adm
Согласен с тобой: соотнощение результата и цены.
Я, видимо, найду, но явно не лучший вариант, так как всего несколько месяцев сел за VB.
И времени уйдет много - очень дорого. А по образцу усваиваится намного лучше.
Спасибо тебе!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 16.07.2006 (Вс) 14:52

Если ты в процедуре
Код: Выделить всё
Private Sub Timer1_Timer()
time1 = time1 + 1
If time1 < retval Then
ARProgressBar1.Value = time1
Label1.Caption = time1 & " %"
Label1.Caption = "0 %"
If time1 = retval Then
End If
End If
Form9.Show
End Sub
Добавишь второй строкой
Код: Выделить всё
Debug.Print retval
, то возможно тебе сразу станет проще ;)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 16.07.2006 (Вс) 16:46

vvs_adm
Спасибо за подсказку, однако, у меня пока ничего не получается
Суть замысла:
есть форма 1 (меню) с кнопками. Кнопка 1 вызывает форму2, где есть Adodc, DataGrid. На заполнение DataGrid уходит некоторое время, в течение которого программа не реагирует движением.

Хотелось бы: при нажатии на кнопку 1 формы1 появлялась бы форма 3 с прогрессбаром, который работал бы до тех пор, пока не загрузилась бы DataGrid (по счетчику строк в ней). После этого выключается форма 3, выключается форма 1 и вызывается форма 2 о во всей своей красе.

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

Сообщение GSerg » 16.07.2006 (Вс) 17:23

Summer.05
Поищи про асинхронные запросы на форуме. А то будешь долго в стену биться головой... а за ней ничего...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 16.07.2006 (Вс) 20:26

GSerg
Спасибо, пошел искать...
Нашел, прочитал. Ничего не понял.
Видимо, проще отказаться отрешения этой задачи: высоких истин низкий ум не варит.

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 16.07.2006 (Вс) 22:49

помойму просто retval необъявлена глобально, а только в форм_лоад.

Summer.05
retval надо объявить не в Form_Load, а глобально, т.е. там где time1...
А как оно на самом деле - Х.З. !


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 58

    TopList