-
Здравствуйте! Делаю курсовой по Pascal - ханойскую башню. Все уже почти написал, осталась по сути только процедура таймера, котрая будет перерисовывать окошки. Думал использовать процедуру Delay. Как написано в справке - она приостанавливает выполнение кода программы на заданное количество миллисекунд. На практике она вообще не пытается даже приостановить этот самый код, в итоге процедура таймера отказывается нормально работать. Как можно еще реализовать задержку?
-
По ходу дела возник еще один вопрос: а как на Паскале избавиться от мерцания экрана при перерисовке?
-
C процедурой задержки справился - сделал ее через функции времени. А вот проблема с мерцанием экрана так и осталась. Рылся в хелпе - нашел процедуры SetVisualPage SetActivePage - но они не захотели нормально работать. То есть мерцание исчезло, но почему-то эти процедуры выводят изображение хаотично - то есть каждый раз картинка показывается в новой части экрана... Почему так - не пойму. Больше процедур для немерцающей перерисовки не нашел. Что делать?
-
По поводу Delay - известная ошибка в паскале, была масса патчей, и альтернативная процедура, и патч tp.exe. Ищи в сети. По поводу мерцания, SetVisualPage когда то нормально работала, использовал, но лучше поискать альтернативные библиотеки вывода графики, хотя для курсовой наверное не нужно, т.к. родные которые vga/svga очень медленные. Они не используют сопроцессор, и ориентируются на набор комманд 8086.
-
Да во всей паутине одни критины предлогают слиип и цыклы, не вижу принципиальной разницы, что-то, что другое обрубит возможность общения пользователя с программой...
а нужно совсем другой вариант.... что то типо таймера
procedure TMIR.DPTTimer(Sender: TObject); //у таймера задаете нужный интервал begin //и получаете счетчик времени DPT.tag:=DPT.tag+1 end;
if DPT.tag=13 then ...... else if DPT.tag=27 then ...... else if DPT.tag=64 then ...... else ....
но один большущий минус, что в большой программе длиннющий код выйдет и сам запутаешься с бегин-ендом, но этот вариант оставляет все возможности коммуникации программы с человеком
|