Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Прогресс бар

Ответить
Настройки темы
[решено] Прогресс бар

Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Изменения
Автор: semiono
Дата: 15-02-2009
Мне нужен прогресс бар чтоб запустить в начале кода, и к завершению чтоб он был 100% типо как заставка
Я вставил в начало
ProgressOn()
далее код проги идёт
и в конце
Progressff()

Но он просто висит без всякого прогресса! В ProgressSet тоже ничего путного не найду. Sleep() тут как бы не уместен.
Потомучто нужен результат хода работы скрипта, а не виртуальное засыпание...
?
---------
Я пока хитро зделал так как скрипт работает быстро создаётся ощущение что готово... 100%
Код: Выделить весь код
ProgressOn("Running...","","")
ProgressSet(100)

BlockInput(1)
....

BlockInput(0)

WinClose("MyWin") ; это на всякий случай лучше иметь за пределами BlockInput(1)

ProgressOff()

-------
Полезное сообщение


Отправлено: 05:22, 14-02-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
нужен прогресс бар »
А в справке пример не подходит?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 11:15, 14-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Нет, там задаётся Sleep(1000) и по нему отсчитывается прогресс. Мне кажется тут совсем ничего не поделаешь. А мой пример самый нормальный, особенно если скрипт работает быстро.

-------
Полезное сообщение


Отправлено: 14:23, 14-02-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
мой пример самый нормальный, особенно если скрипт работает быстро »
Я тогда вообще не понял в чём проблема .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:49, 14-02-2009 | #4


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Ну это вы с сарказмом так. Прогресс бар должен отображать ход работы, другое дело что его пример не совсем удачный в хелпе и вообще не ясно что с ним можно зделать. Я лишь как прикол нашёл решение, всё лучше чем ничего.
Creat0R, что-то вы не в духе сегодня. Я пожалуй спрячусь подальше на время...

-------
Полезное сообщение


Отправлено: 14:57, 14-02-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
Ну это вы с сарказмом так »
Как раз нет, я серъёзно не понимаю суть проблемы.

Цитата semiono:
Прогресс бар должен отображать ход работы »
В справке разве это не происходит, тогда вот ещё пример:

Код: Выделить весь код
ProgressOn("Заголовок", "Главный текст", "Под-текст")

$iPrecent = 0

While 1
    ;Тут выполняется что угодно

    ;Увеличиваем прогресс на 5 единиц
    $iPrecent += 5
    ProgressSet($iPrecent, "Под-текст, проценты: " & $iPrecent & "%")

    ;Спим 0.5 секунд
    Sleep(500)

    If $iPrecent = 100 Then ExitLoop
WEnd

MsgBox(262144+64, "Фенито!", "Прогресс окончен!", 0, WinGetHandle("Заголовок"))
Цитата semiono:
что-то вы не в духе сегодня »
Дело не в этом, просто если у Вас нет терпения читать подробности у функции в справке, то почему у меня (или у любого другого кто желает помочь) должно быть терпение к тривиальным задачам?


P.S
А тему назвали неудачно, переименуйте во что-то более вразумительное .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:56, 14-02-2009 | #6


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Изначально хотел назвать, типа графическое оформление, что и было почти, но думаю на одном таск баре и остановимся.
Цитата Creat0R:
В справке разве это не происходит, »
Ну да, всё так. Просто я ожидал что ProgressOn(), будет сам всю работу обеспечивать.
А тут получается для него надо всю функцию расписать. Я бы просто, извините с разработчиками поспорил,
так как нет смысла в редактировании такой простой штуки... уже бы было всё в # include прописанно одним вызовом чтоб. Я только этот случай имею ввиду! Вот именно этим я и озадачился. Мы же не описываем функцию RegWrite() например, только поля редактирум!

-------
Полезное сообщение


Отправлено: 11:23, 15-02-2009 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
я ожидал что ProgressOn(), будет сам всю работу обеспечивать »
Тогда у меня есть для вас новость. В других языках программирования, всё намного сложнее, там ВСЁ нужно самому делать (если не брать в счёт готовые библиотеки), в AutoIt' же, многие задачи реализованы уже за нас, вшиты в ядро языка.

Мне просто интересно, как функция будет знать сколько устанавливать прогресс? когда менять его, или имеется в виду чтобы он покругу ходил как маятник?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:02, 15-02-2009 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Тогда вот так например:

Код: Выделить весь код
#include <Timers.au3>

Global $i_Timer, $h_Timer_GUI, $i_Precent = 0

_ProgressOn("Заголовок", "Главный текст", "Под-текст")

While 1
    ;Тут выполняется что угодно

    Sleep(5000)
    ExitLoop
WEnd

_Timer_KillTimer($h_Timer_GUI, $i_Timer)
ProgressSet(100, "Проценты: 100%")

MsgBox(262144+64, "Фенито!", "Прогресс окончен!", 0, WinGetHandle("Заголовок"))

Func _ProgressOn($sTitle="", $sMainText="", $sSubText="", $iXPos=-1, $iYPos=-1, $iOpt=16)
    ProgressOn($sTitle, $sMainText, $sSubText, $iXPos, $iYPos, $iOpt)

    $h_Timer_GUI = GUICreate("__TIMER__")
    $i_Timer = _Timer_SetTimer($h_Timer_GUI, 100, "_ProgressSet")
EndFunc

Func _ProgressSet($hWnd, $Msg, $iIDTimer, $dwTime)
    ;Увеличиваем прогресс на 5 единиц
    $i_Precent += 5
    ProgressSet($i_Precent, "Проценты: " & $i_Precent & "%")

    ;Если достигли 100 процентов, сбрасываем на 0.
    If $i_Precent = 100 Then $i_Precent = 0
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:22, 15-02-2009 | #9


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Мне просто интересно, как функция будет знать сколько устанавливать прогресс? »
Надо чтобы функция рисовала прогресс от слова ProgressOn до слоава ProgressOff, достаточно лишь их указать как вход и выход из программы... Не знаю как, но у форматирования диска или копирования файлов это как-то высчитывается.
Это только в lowlevel code language надо всё вручную собирать
Хотя gif анимация тоже часто присутствует, тоже круговая неподконтрольная.

Сегодня у чувака подпись увидел, прямо в тему ))
Цитата:
Надпись: "Выполнено 99%" радует только первые три часа.

-------
Полезное сообщение


Последний раз редактировалось semiono, 15-02-2009 в 13:54.


Отправлено: 13:08, 15-02-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Прогресс бар

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вставка прогресс бара в функцию Medic84 AutoIt 52 07-04-2014 00:19
Интернет - [addon] Яндекс.Бар - панель инструментов для Internet-браузера anddy Наборы обновлений для Windows XP/2003/Windows 7 3 27-07-2011 14:47
[решено] Верхний бар HP Pavilion 2040 benwar Ноутбуки 2 08-01-2010 01:09
[решено] [PHP] Прогресс-бар (счетчик игроков) D_Master Вебмастеру 3 27-03-2009 18:41




 
Переход