Помощь - Поиск - Пользователи - Календарь
Полная версия: Рисование двумя видеостраницами.
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Олег
Вот такой простенький пример. По экрану должeн двигатсься квадрат.

Uses Graph;
var x,y: Integer;
a, v: Byte;
procedure Flip;
begin
a:= a xor 1;
v:= v xor 1;
SetVisualPage(v);
SetActivePage(a);
end;
BEGIN
x:= 9; y:= 2;
a:= 0; v:= 1;
InitGraph(x, y, 'C:\BP\BGI');
SetActivePage(a);
SetVisualPage(v);
for x:=0 to 600 do
begin
ClearDevice;
Bar(x, 30,x+30,60);
Flip;
end;
ReadLn;
END.


Вместо этого квадрат рисуется в двух местах (сверху и снизу). В чем дело?
Может проблема связана с вертикальной разверткой? Если так, то как синхронизировать (используя только Graph)?

М
ТЕГИ!
Altair

volvo
Цитата
Вместо этого квадрат рисуется в двух местах (сверху и снизу). В чем дело?

Только в том, что для использования нескольких видеостраниц, их должно быть несколько... Что у тебя?
x:= 9; y:= 2;
...
InitGraph(x, y, 'C:\BP\BGI');
аналогично
x := VGA; y := VGAHi;
А этот режим имеет только одну видеостраницу... Делай
x := EGA; y := EGAHi;
, там их 2...

Кстати, ты неправильно построил саму структуру программы. Поищи на форуме про SetActivePage, были примеры правильного использования... Ты должен сразу после отрисовки видимой страницы подготовить активную, а потом (возможно, после небольшого Delay-я) переключить страницы. У тебя же видеостраницы просто так переключаются, и никакого эффекта от этого нет (движение происходит только за счет ClearDevice и Bar).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.