![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.05.2010
Сообщений: 3
|
![]()
Добрый вечер.
Столкнулся с некоторой проблемой при написании программы. Необходимо перемещение по "координатам" с помощью клавиш и помещение в нужную клетку символа (произвольного). Код очень простой. Можно реализовать через стрелки. Но для наглядности и простоты описания проблемы воспользуемся клавишами WASD, чтобы не заморачиваться пока что с двойным кодом клавиш стрелок. И так, перемещение WASD. Пробел - рисуем символ, скажем *. Код:
Собственно проблема: Все работает как надо: влево, вправо, вниз - но если мы, например, рисуем символ (пробел) - перемещаемся на 1 позицию вверх (W)- рисуем символ (пробел) (он не отображается) - перемещаемся вверх (W)- рисуем символ (пробел) (отображается сразу 2 символа: текущий и на шаг ранее). То есть возникает некая проблема при рисовании символов вверх. Буду благодарен, если кто-нибудь укажет на ошибку или объяснит в чем здесь проблема. EXE файл прилагается. Последний раз редактировалось wolwer; 23.05.2010 в 21:33. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 23.05.2010
Сообщений: 3
|
![]()
UP'ну тему. Не серчайте сильно
![]() Хочется поскорее разобраться с этой ситуацией и дальше выполнять курсовик. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я потрясён!
Вы натолкнулись на абсолютно непонятный глюк Windows, который заключается в том, что Винда "забывает" обновлять окно приложения. При этом я подтверждаю, что это происходит только в том случае, если курсор перемещался вверх, а после этого происходил вывод одного (именно одного) символа... способы решения. 1) Перейти в полноэкранный режим (ALT-ENTER) - там этого глюка повторит не удалось! 2) воспользоваться оболочкой Turbo Pascal School Pak (ну, или, что почти тоже самое - оболучкой-эмулятором DosBox) - я там этот глюк не проверял, но на 99.9% уверен, что там его не будет! 3) или воспользовать прямой записью в видеопамять... (есть библиотечки типа TPCRT/ OPCRT... да и выдрать код оттуда можно) 4) либо, НА КРАЙНИЙ СЛУЧАЙ, попробовать такой варварский метод: Код:
|
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 23.05.2010
Сообщений: 3
|
![]() Цитата:
Обидно, что столько времени потрачено на такую глупую ситуацию ) Ведь знал же, что ну не может быть проблемы в коде.. эх ) |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы с перемещением объектов по форме | AbekIn3D | Общие вопросы Delphi | 7 | 16.11.2010 15:39 |
Проблема с перемещением файла | katttes | Общие вопросы Delphi | 7 | 29.04.2010 11:36 |
Проблема с перемещением | Deamonig | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 26.09.2009 13:51 |
Проблема с перемещением картинки | Vanya | Общие вопросы Delphi | 2 | 16.07.2008 14:30 |
ВОПРОС на счет блоков памяти и отслеживание за перемещением потока. | Big Zee | Свободное общение | 7 | 21.04.2008 14:38 |