Помощь - Поиск - Пользователи - Календарь
Полная версия: проблемы с графическим режимом
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Helen
Помогите, пожалуйста! Когда я подключаю модуль Graph в паскале, меня просто выбрасывает из программы..хотя я все подключения делаю правильно и на этапе компиляции ошибок не обнаружено unsure.gif
TarasBer
Это не в задачи, а в теоретиеские вопросы.
Тебя выкидывает просто при подключении модуля, и всё? Тогда не знаю.
[режим телепатии]
Тебя выкидывает на строчке InitGraph? Тогда так и надо, блин, написать, в вопросе. Что в окне вывода (нажми альт+ф5)? Короче, надо скопировать egavga.bgi в папку с turbo.exe, либо прописать в качестве третьего параметра что-то типа '..\bgi\'
[/режим телепатии]
Helen
меня выкидывает после записи InitGraph..я всё подключаю правильно..и EGAVGA в папку перенесла...и путь правильно прописываю.
Lapp
Цитата(Helen @ 5.09.2010 14:20) *
меня просто выбрасывает из программы..
Раскрой смысл этих слов. И вообще, постарайся говорить
а. только факты, видимые действия компьютера;
б. по возможности, выдаваемые сообщения;
в. без жаргона и образных выражений, например: не "выбрасывает", а "программа заканчивает работу" (если я правильно интерпретировал).

Цитата(Helen @ 5.09.2010 14:20) *
я все подключения делаю правильно
Если бы это действительно было так, результат был бы другой.. Приведи фрагмент кода, плз.
Helen
я включаю демонстрационный файл BGIDemo.Pas прописываю в меню Options->Directories->Unit Directories путь к модулю, перенесла драйвер EGAVGA.BGI в рабочую папку(там же уже есть и файл BGIDEMO.PAS) компиляция проходит без ошибок, а после строчки InitGraph появляется чёрный экран, который моментально исчезает и паскаль тоже закрывается..Пробовала уже переустанавливать несколько раз - ничего..и операционная система у меня XP.
Lapp
Цитата(Helen @ 5.09.2010 14:40) *
после строчки InitGraph появляется чёрный экран, который моментально исчезает и паскаль тоже закрывается..
Если черный экран появляется - значит, графика инициализируется. Программа падает по какой-то другой причине.
Попробуй вставить задержку сразу после InitGraph - например, ReadLn, или Delay на какое-то разумное время.
Кстати, возможно, что вся твоя прога отрабатывает, просто очень быстро..
Что значит "паскаль закрывается"? Окно паскалевской среды (IDE) исчезает?
Helen
да..исчезает.

Добавлено через 7 мин.
даже простые программы, ну наподобие этой, не идут.
Program Pr;
uses Graph;
var gd,gm:integer;
begin
gd:=detect;
InitGraph(gd,gm,' ');
Line(50,50,100,100);
Readln;
CloseGraph;
end.



Добавлено через 3 мин.
вставляла и задержку, и readln - всё равно выходит из программы
volvo
Вообще-то принято проверять, инициализировался ли режим, перед тем, как начинать с ним работать:

    gd:=detect;
InitGraph(gd,gm,' ');

ErrorCode := GraphResult;
if ErrorCode <> grOk then
begin
Writeln('Graphics error:', GraphErrorMsg(ErrorCode));
ReadLn; Halt(1);
end;

Line(50,50,100,100);


Запусти и посмотри, инициализируется ли графика, или есть какая-то ошибка. Если ошибка - говори, какая.
Helen
так у меня всё равно тоже самое: появляется на мгновение чёрный экран и потом просто рабочий стол, а паскаль закрывается.
Helen
а причиной не может быть отсутствие какого-нибудь файла?
volvo
Хм... Не должно. Если программа компилируется, а BGI-файл лежит рядом с EXE-файлом то должно работать. Тогда еще кое что: какая у тебя ОС? Проверь также какие атрибуты установлены у BGI-файла, была информация, что если этот файл ReadOnly, то могут быть проблемы с инициализацией графики.

Ну, и , наконец, если у тебя 16-ти битное приложение в принципе может инициализировать графику (в полноэкранном режиме - не все ОСи это позволяют), то сделай еще одну вещь: запусти консоль (Start -> Run -> cmd), перейди с помощью команды CD в ту папку, где лежит твой EXE-шник (я надеюсь, ты компилируешь программу на диск, а не в память?), и запусти EXE прямо из окошка консоли. Так ты по крайней мере можешь увидеть сообщение об ошибке.
Helen
..если я всё правильно сделала, то у меня появилось: Graphics Error:Device Driver File not found <EGAVGA.BGI>
хотя я перенесла его в ту же папку((..но я не сильно знакома с консолью..может, я где-то ошиблась..
sheka
Повторюсь: smile.gif
По моему, такое может быть еще из-за того, что неправильно установлен текущий каталог. Попробуй зайти в СhangeDir и изменить каталог на тот, где у тебя .пас лежит.
volvo
Цитата
у меня появилось: Graphics Error:Device Driver File not found <EGAVGA.BGI>
хотя я перенесла его в ту же папку((
Что с атрибутами этого файла? ReadOnly убрала?

Цитата
может быть еще из-за того, что неправильно установлен текущий каталог.
Этого уже не может быть, если BGI-файл лежит в той же папке, где и EXE-шник, и запускается все это дело не из IDE, а напрямую - то настройка текущего каталога вообще не при делах.
Helen
там нету такого в атрибутах..ну т.е нечего убирать, всё с ним нормально..Прикол в том, что у всех моих одногруппников программа идёт, а у меня нет, хотя мы все брали установку с одного сервера unsure.gif
Lapp
Helen, у меня два предложения.

1. Скачай и установи Far, например отсюда. Для работы с TP лучше выбрать версию 1.75 для x86. Это некий заменитель консоли. Тогда мы разберемся до конца с твоей проблемой. Эта программа тебе вообще облегчит жизнь намного при работе с ТП (и с FP тоже, смотри ниже).

2. Скачай и установи Free Pascal. Это продвинутый заменитель ТР, с ним твоя проблема должна уйти совсем.

А так - мы будем долго ковырятся и так и не доковыряемся.. Видно, что ты очень не любишь говорить внятно, называя вещи своими именами, все время пытаешься сказать "своими словами", а это сильно мешает. Например, ты говоришь
Цитата
там нету такого в атрибутах..ну т.е нечего убирать, всё с ним нормально..
- когда требуется сказать "атрибут read only не стоит" - что короче и понятнее, или "я не знаю, как это выяснить". И, может, привести фрагмент листинга, типа так:
C:\abc> attrib *
A C:\abc\DSC03945.JPG
A C:\abc\DSC03946.JPG


Твои ответы постоянно заставляют задуматься: знаешь ли ты о том, что говоришь, или использованием "свободных" выражений пытаешься прикрыть недостаток знаний. Ты пойми, что в программировании все должно быть четко. Не нужно брать пример с "кулхацкеров", которые ни фига не понимают, но говорят, будто они сами все цифровые из себя..
Не стесняйся своего незнания, спрашивай - это самый лучший способ научиться.
А что касается "прикола" - это не прикол.. это очень частая ситуация. Надо разобраться. Им повезло, что все пошло сразу. А тебе повезло, что ты научишься разбираться smile.gif, и это даже лучше. Take it so, и все будет хорошо. А мы поможем )).
Helen
хорошо, и что мне делать с этим Far?
Lapp
Цитата(Helen @ 7.09.2010 16:36) *
хорошо, и что мне делать с этим Far?
Фар тебе поможет обрести уверенность в своих действиях (ты писала, что не очень знакома с командной строкой). Зайди в тудиректорию и запусти прогу. Ctrl-O убирает/возвращает панели, так что ты сможешь увидеть сообшение. Еще там просто смотреть атрибуты: позиционируйся на файл и нажми последовательно F9, F, A.

Говори, что получается.
kumino
У меня паскаль из папки Schoolpak, как там графику включать?(для обычного - знаю)
volvo
Цитата
У меня паскаль из папки Schoolpak, как там графику включать?
Спрашивать у тех "профессионалов", которые собирали эту "Профессионально выполненную версия Turbo Pascal". Оригинал, надо понимать, в Борланде лохи собирали? Значит так этот твой SchoolPak собирали, что графика в нем не инициализируется. У меня и с обычным Турбо-Паскалем проблем нет.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.