![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
BRS |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Собственно есть ли такая возможность в пасале?
Предположим в какой то момент программы, необходимо зделать скажем 5 проверок на каждый пиксель и потом перекрасить по какому нить правилу какойнить пиксель: [code]for i:= 1 to 640 do for j:= 1 to 480 do begin if... then... putpixel if... then... putpixel if... then... putpixel if... then... putpixel if... then... putpixel end; собственно понятно, что вполне заметно как экран будет заполняться рядами примерно за 0,5 сек. Так вот. Можно ли ка нибудь сделать следуюющее. Во время выполнения цикла - заполнять мнимый (второй / что то вроде бекграунда) экран, а пользователю в это время показывать что нибудь еще ( ну напиример мигающую надпись WAIT!). |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
BRS
Для этого можно использовать процедуры SetActivePage и SetVisualPage. Но я не уверен, что режима 640х480 есть больше одной видеостраницы... Для режимов с меньшим разрешением это делается так: Код ... { Выводим сообщение на видимой странице... по умолчанию - страница №0 } OutTextXY(GetMaxX div 2, GetMaxY div 2, 'Wait'); { Устанавливаем страницу №1 активной, но не видимой } SetActivePage(1); { Заполняем невидимую страницу } for i:= 1 to 640 do for j:= 1 to 480 do { заполнение экрана } { Делаем заполненную страницу видимой } SetVisualPage(1); ... Сообщение отредактировано: volvo - 30.10.2004 13:31 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:28 |