Графика при переходе к Windows |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Графика при переходе к Windows |
Taissie |
22.03.2015 13:05
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: 0 |
Здравствуйте.
У меня есть такая проблема. Когда-то написала программы под DOS. Теперь хотела бы воспроизвести их результаты под Windows. Обычная программа, для расчета значений, работает. Но программа для построения графики - нет. Получается сообщение, что "эта система не поддерживает полноэкранный режим". Как все же выводить на экран монитора закрашенные пиксели? У меня в программе стоит "uses graph" И затем выполняется процедура begin driver:=3; mode:=1; initGraph (driver,mode,' '); for i:=0 to 639 do for j:=0 to 349 do begin a:=F0(i;j); color:=FC1(a); putpixel (i,j,color); end; Раньше, когда еще не было Windows, всё работало, и даже сохранились сделанные рисунки. Спасибо. |
Федосеев Павел |
22.03.2015 19:38
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Возможны два варианта:
1. Можно попробовать откомпилировать в другом компиляторе FreePascal. В этом случае, возможно, придётся внести небольшие изменения в исходник. 2. Установить виртуальную машину с DOS (DOSBox, VirtualBox). Есть вариант TurboPascal с DOSBox - называется SchoolPak. |
Taissie |
22.03.2015 22:07
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: 0 |
Спасибо, этот последний вариант ScoolPak получился (первые два пока не пробовала, так как рисунок вроде бы устраивает).
Единственное что - программа рисует поточечно, но в конце не останавливается, и поэтому получившийся рисунок сразу пропадает. Остановила ее с помощью readln , изготовление рисунка в конце остановилось, но вот проблема - затем никак не выйти из программы, реакция на любую клавишу - просто печатает символ вместо части рисунка. Пришлось запускать Диспетчер задач и так выходить из программы. Сообщение отредактировано: Taissie - 22.03.2015 22:09 |
Федосеев Павел |
23.03.2015 10:30
Сообщение
#4
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Еслли readln - то ожидается Enter.
Можно, подключив CRT сделать ожидание таким Код while KeyPressed do {очистка буфера клавиатуры} ReadKey; repeat {ожидание нажатия любой клавиши} until KeyPressed; ReadKey; |
Taissie |
27.03.2015 11:47
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: 0 |
Да, вспомнила эту процедуру остановки...
Но эти операторы нужно еще скопировать в ту программу. Столкнулась с тем, что могу скопировать только внутренние куски программы. А можно ли скопировать что-то извне? Еще: как остановить выполнение программы в любой момент времени - через какую-то комбинацию на клавиатуре? Сообщение отредактировано: Taissie - 27.03.2015 11:51 |
Федосеев Павел |
27.03.2015 22:42
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Цитата Но эти операторы нужно еще скопировать в ту программу. Столкнулась с тем, что могу скопировать только внутренние куски программы. А можно ли скопировать что-то извне? Средствами DOS - никак. Но на время можно открыть исходники Блокнотом или иным текстовым редактором из Windows...Цитата Еще: как остановить выполнение программы в любой момент времени - через какую-то комбинацию на клавиатуре? Ctrl-C и Ctrl-Break.Не помню, или одну из них или сначала Ctrl-C, а потом Ctrl-Break. Из документации на DOS следует, что Ctrl-C - это стандартное сочетание для прерывания работы любой программы, но это прерывание произойдёт в момент ввода или вывода (с клавиатуры, на монитор, файлов) средствами ОС. Т.е. если программа зациклилась при вычислениях - ничто не поможет. Но при отладке в IDE TP добавлена комбинация Ctrl-Break.Вот ссылка на описание отладки IDE TurboPascal7.0. Почти полностью оно подходит для IDE FreePascal. Если есть возможность - попробуй перейти на FreePascal. Его плюсы при переходе: такая же IDE, как и у TP, компилируется под Windows, для простых программ есть режим совместимости с TP ("старая" прога сможет обрести "новую" жизнь). Плюсы над TP: более развитая штатная библиотека на многие случаи жизни, можно использовать компилятор командной строки, а это значит, что можно пользоваться Windows-подобными редакторами для работы (лично я использую SciTE - здесь на форуме есть пара-тройка тем об этом, но пришлось отказаться от отладчика), к этим редакторам можно добавлять разные инструменты (я в SciTE подключил форматтер исходного кода), для FreePascal есть надстройки похожие на Delphi (Lazarus, CodeTyphon и MSE). Не буду обманывать, я не сразу смог перейти - по сравнению с TP он кажется тормознутым, было много наработок "с хаками", которые не принимались FreePascal'ем. Но потом, потребовались утилиты для Windows, и тогда TP отошёл на второй план, а потом и забылся. |
Текстовая версия | 15.11.2024 11:00 |