Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Графика при переходе к Windows

Автор: Taissie 22.03.2015 17:05

Здравствуйте.
У меня есть такая проблема.
Когда-то написала программы под 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 23:38

Возможны два варианта:
1. Можно попробовать откомпилировать в другом компиляторе FreePascal. В этом случае, возможно, придётся внести небольшие изменения в исходник.
2. Установить виртуальную машину с DOS (DOSBox, VirtualBox).

Есть вариант TurboPascal с DOSBox - называется http://pascal.net.ru/Скачать+Turbo+Pascal.

Автор: Taissie 23.03.2015 2:07

Спасибо, этот последний вариант ScoolPak получился (первые два пока не пробовала, так как рисунок вроде бы устраивает).
Единственное что - программа рисует поточечно, но в конце не останавливается, и поэтому получившийся рисунок сразу пропадает. Остановила ее с помощью readln , изготовление рисунка в конце остановилось, но вот проблема - затем никак не выйти из программы, реакция на любую клавишу - просто печатает символ вместо части рисунка. Пришлось запускать Диспетчер задач и так выходить из программы.

Автор: Федосеев Павел 23.03.2015 14:30

Еслли readln - то ожидается Enter.
Можно, подключив CRT сделать ожидание таким

Код
  while KeyPressed do {очистка буфера клавиатуры}
    ReadKey;
  repeat  {ожидание нажатия любой клавиши}
  until KeyPressed;
  ReadKey;

Автор: Taissie 27.03.2015 15:47

Да, вспомнила эту процедуру остановки...
Но эти операторы нужно еще скопировать в ту программу. Столкнулась с тем, что могу скопировать только внутренние куски программы. А можно ли скопировать что-то извне?

Еще: как остановить выполнение программы в любой момент времени - через какую-то комбинацию на клавиатуре?

Автор: Федосеев Павел 28.03.2015 2:42

Цитата
Но эти операторы нужно еще скопировать в ту программу. Столкнулась с тем, что могу скопировать только внутренние куски программы. А можно ли скопировать что-то извне?
Средствами DOS - никак. Но на время можно открыть исходники Блокнотом или иным текстовым редактором из Windows...
Цитата
Еще: как остановить выполнение программы в любой момент времени - через какую-то комбинацию на клавиатуре?
Ctrl-C и Ctrl-Break.Не помню, или одну из них или сначала Ctrl-C, а потом Ctrl-Break. Из документации на DOS следует, что Ctrl-C - это стандартное сочетание для прерывания работы любой программы, но это прерывание произойдёт в момент ввода или вывода (с клавиатуры, на монитор, файлов) средствами ОС. Т.е. если программа зациклилась при вычислениях - ничто не поможет. Но при отладке в IDE TP добавлена комбинация Ctrl-Break.

Вот http://vlady.uzelok.net/main/full_debug.htm на описание отладки IDE TurboPascal7.0. Почти полностью оно подходит для IDE FreePascal.

Если есть возможность - попробуй перейти на FreePascal. Его плюсы при переходе: такая же IDE, как и у TP, компилируется под Windows, для простых программ есть режим совместимости с TP ("старая" прога сможет обрести "новую" жизнь). Плюсы над TP: более развитая штатная библиотека на многие случаи жизни, можно использовать компилятор командной строки, а это значит, что можно пользоваться Windows-подобными редакторами для работы (лично я использую SciTE - здесь на форуме есть пара-тройка тем об этом, но пришлось отказаться от отладчика), к этим редакторам можно добавлять разные инструменты (я в SciTE подключил форматтер исходного кода), для FreePascal есть надстройки похожие на Delphi (Lazarus, CodeTyphon и MSE). Не буду обманывать, я не сразу смог перейти - по сравнению с TP он кажется тормознутым, было много наработок "с хаками", которые не принимались FreePascal'ем. Но потом, потребовались утилиты для Windows, и тогда TP отошёл на второй план, а потом и забылся.

Автор: dolor de espalda mezclar diclofe 10.12.2021 22:03

Viagra E Ricetta Medica