![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ProgressBar1 [D7, XP]
Chort © (2006-08-22 22:07:00)Вопрос таков.
Нужно чтоб по таймеру, кот. выставлен на 5 секунд происходило заполнение прогресс бара. или может без таймера. Короче говоря как сделать чтоб за пять секунд заполнился компонент ProgressBar1 таблетками?Спасибо.
Ketmar (2006-08-23 17:00:00) [1]> [29] Германн © (23.08.06 16:58)
так я тоже не помню. но пока извиняюсь. %-) если найду опровержение -- буду сражаться более предметно. %-)
Anatoly Podgoretsky (2006-08-23 17:00:00) [2]Ну я написал, что уже не помню - давно это было, RTC это как раз он и есть.
Пусик (2006-08-23 16:59:00) [3]
> Ketmar © (23.08.06 16:14) [21]
> > [19] Пусик © (23.08.06 14:48)почитал. "The multimedia
> timer runs in its own thread". отсюда и мои выводы. из win32.
> hlp. а то, что они меряют интервалы, предположим (предположим!
> ) через QueryPerformanceCounter(), а не через GetTickCount()
> -- сути не меняет.зыж тон не сбавите, уважаемая? я понимаю,
> вам всё вокруг не нравится, но выдержку всё же полезно
> тренировать.
Прошу прощения, но побеспокойся о своей выдержке прежде.
PS.
Анекдотов не предлагать. Здесь не курилка.
PPS.
КРоме всего прочего, MMT как раз из-за ресурсоемкости в системе тоже может быть весьма ограниченное количество.
Германн (2006-08-23 16:58:00) [4]
> Anatoly Podgoretsky © (23.08.06 16:47) [24]
>
> Смотри описание БИОС и устройство IBM PC компьютеров.
> Пробел конечно досадный, связан с терминологией MultiMedia
> - ну хотелось им использовать громкое слово, и вот так всех
> запутали, когда это обычный таймер от часов. 2^15 от частоты
> 32768 кгц (кварц) получается одна секунда, а один из промежуточных
> выходов (2^5) идет на прерывание (номер не помню).
>
Чего-то я такого по IBM PC не помню. Помню только, что можно было использовать RTC как будильник. Он тогда вызывал прерывание 4Ah.
Ketmar (2006-08-23 16:57:00) [5]вдогон: извиняюсь перед Пусик ©. был неправ.
Anatoly Podgoretsky (2006-08-23 16:57:00) [6]Тебе достаточно написали, чтобы все написать, задумайся хотя бы насчет 50 мс
Ketmar (2006-08-23 16:57:00) [7]> [24] Anatoly Podgoretsky © (23.08.06 16:47)
понял. tnx.
Chort (2006-08-23 16:50:00) [8]Я извиняюсь, что прерываю вашу дискуссию, но можно пример?
Anatoly Podgoretsky (2006-08-23 16:47:00) [9]Смотри описание БИОС и устройство IBM PC компьютеров.
Пробел конечно досадный, связан с терминологией MultiMedia - ну хотелось им использовать громкое слово, и вот так всех запутали, когда это обычный таймер от часов. 2^15 от частоты 32768 кгц (кварц) получается одна секунда, а один из промежуточных выходов (2^5) идет на прерывание (номер не помню).
Ketmar (2006-08-23 16:36:00) [10]> [22] Anatoly Podgoretsky © (23.08.06 16:21)
э-э-э... а разве CMOS умеет стрелять прерываниями в таком стиле? можно ссылочку, или хотя бы ключевые слова для поиска, чтобы не продираться через кучу страниц, содержащих буквы CMOS?
просто интересно, я о таких фактах не знаю. досадный пробел.
Anatoly Podgoretsky (2006-08-23 16:21:00) [11]Да есть такая штука в компьютере, как CMOS память, частью ее является MM Timer, есть поддержка в БИОС и в ОС, минимальный интервал чуть менее 1 мс. На уровне АПИ поддержаны callback фунции, поэтому точность очень высокая, в отлии от обычного трехканального таймера, цикл которого 55 ms или 10 мс в НТ, низкоприоритетный таймер.
Ketmar (2006-08-23 16:14:00) [12]> [19] Пусик © (23.08.06 14:48)
почитал. "The multimedia timer runs in its own thread". отсюда и мои выводы. из win32.hlp. а то, что они меряют интервалы, предположим (предположим!) через QueryPerformanceCounter(), а не через GetTickCount() -- сути не меняет.
зыж тон не сбавите, уважаемая? я понимаю, вам всё вокруг не нравится, но выдержку всё же полезно тренировать.
> [20] Anatoly Podgoretsky © (23.08.06 14:50)
то есть, он вызывается прерыванием от часиков или подобным? возможно, но я такой информации не встречал. впрочем, спорить не стану -- именно поэтому. %-)
Anatoly Podgoretsky (2006-08-23 14:50:00) [13]Ketmar © (23.08.06 11:20) [17]
Это вообще то аппаратный таймер.
Пусик (2006-08-23 14:48:00) [14]
> Ketmar © (23.08.06 11:20) [17]
Да вот хотя бы обсуждение почитай, чтобы из пустого в порожнее не переливать.
http://www.megalib.com/books/461/data/discission434.htm
PS.
Анекдотов мне не надо. Здесь не курилка.
alex_*** (2006-08-23 14:26:00) [15]отражай в прогрессе реальный ход сохранения данных - прикинь сколько операций сохранения и пиши "сохраняется ххх", после чего наращивай progress
Ketmar (2006-08-23 11:20:00) [16]> [11] Пусик © (23.08.06 02:56)
уважаемая, mm-timer -- это не что иное, как отдельный поток с кодом, похожим на [9]. не вижу разницы, кто будет создавать поток -- непосредственно программа, или виндовая DLL. только в последнем случае писать меньше.
Chort (2006-08-23 10:54:00) [17]to PSPF2003
Да, занимает сохранение много, так как конфигурации не мало + сохранение базы данных.
Наиль (2006-08-23 10:08:00) [18]
> procedure TCloseform.Timer1Timer(Sender: TObject);
> begin
> close
> end;
procedure TCloseform.Timer1Timer(Sender: TObject);
begin
// Заполнение до 100% за 5 сек :o)
progressbar.position:=100;
close
end;
А если серьёзно, то ставь интервал на 50мс, прибавляй по 1%, при достижении 100% закрывай форму. Всё.
PSPF2003 (2006-08-23 09:57:00) [19]
> По закрытию главной формы у меня идет сохранение конфигурации
> в .ini файл
Ни фига себе конфиг!
Chort (2006-08-23 09:50:00) [20]Уточняю(или дополняю) вопрос.
По закрытию главной формы у меня идет сохранение конфигурации в .ini файл . Это занимает около 5 секунд. Вот чтоб не было так скучно я и решил сделать заставку на закрытие. В главной форме написал
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseForm.showModal;
end;
На формочку CloseForm кинул таймер , поставил 5000
procedure TCloseform.Timer1Timer(Sender: TObject);
begin
close
end;
И бросил на эту форму ProgressBar.
Теперь по закрытию главной формы показывается CloseForm на пять секунд и закрывается(вместе с главной). Так вот как добавить к этому и ProgressBar.