EGAVGA.BGI - в папке bgi
директорию прописал
винда 2к
Begin
grdriver:=detect;
Initgraph(grdriver,grmode,'c:\bp\b
gi\');
restoreCRTMode;
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Графика и полноэкранный режим, помогите настроить |
-Андрей- |
Сообщение
#1
|
Гость |
Дело в том что паскаль работает с unitом crt, но как только подключаю graph - при компиляции он разварачивает паскаль на весь монитор и так оставляет тёмный экран, нажатие alt+enter возвращает в оконный, но окно пустое тёмное и заголовок Turbo Pascal - ЗАФИКСИРОВАНО.
EGAVGA.BGI - в папке bgi директорию прописал винда 2к Begin |
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
В общем-то так и должно быть.
Не понял, в чем проблема. |
spill |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Андрей Репутация: 2 |
По идее, такого быть не должно.
Он должен перейти в графический режим, сразу же из него выйти и закончить программу. Попробуй вот что: 1. Порисуй там че-нибудь, или поставь ReadKey (модуль CRT). Если получилось нарисовать, то все в порядке 2. Поместить EGAVGA.BGI в папку с программой 3. Вместо Код grdriver:=detect; Написать Код grdriver:=VGA; grmode:=VGAHi Может, заработает |
volvo |
Сообщение
#4
|
Гость |
Цитата Он должен перейти в графический режим, сразу же из него выйти и закончить программу. Это у тебя телепатические способности, или просто тяга к некорректным выводам? Ты что, видел ВСЮ программу, чтобы уверенно рассуждать, что должно быть, а что нет? Все, что следует из поста - это то, что после инициализации графики автор временно возвращается в текстовый режим. Что он там делает - неизвестно, поэтому домыслы свои оставляй при себе... |
spill |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Андрей Репутация: 2 |
Да, я не видел ВСЕЙ программы, но ведь возврат в текстовый режим не произошел, а значит, что-то неправильно работает именно на стадии инициализации графического режима.
|
Андрей by minsk |
Сообщение
#6
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: 0 |
Код grdriver:=VGA; grmode:=VGAHi не помогло, боюсь что Turbo pascal использует в win2k файл ntvdm.exe, а он у меня какой-нить битый, хотя почему без graph нормально работает не понимаю. установил Free pascal, компилируется, но выскакивает два окна в одном нарисован лабиринт в другом предлогает выбрать стартовую точку. по идеи после выбора места, при нажатии любой клавиши или enter должна рисоваться линия, как идёт человек, но ничего не происходит вот исходник Код Program Laba1; uses crt,graph; var floor,place,driver,mode,x,y,i : integer; Procedure lifts_and_stairway; Begin rectangle(410,120,430,140); rectangle(170,360,190,380); rectangle(150,100,155,105); rectangle(150,100,160,110); rectangle(150,100,165,115); outtextxy(195,360,'first lift'); outtextxy(320,130,'second lift'); outtextxy(150,90,'stairway') End; Procedure street_floor; Begin SetBkcolor(cyan); line(150,100,450,100); line(450,100,450,400); line(450,400,320,400); line(280,400,150,400); line(150,400,150,100); line(170,120,430,120); line(430,120,430,200); line(430,210,430,380); line(430,195,410,195); line(410,195,410,215); line(410,215,430,215); line(430,380,170,380); line(170,380,170,120); lifts_and_stairway; outtextxy(370,200,'room'); End; Procedure first_floor; Begin SetBkcolor(blue); rectangle(150,100,450,400); line(170,120,250,120); line(260,120,430,120); line(245,120,245,135); line(245,135,265,135); line(265,135,265,120); line(430,120,430,380); line(430,380,360,380); line(330,380,170,380); line(365,380,365,340); line(365,340,325,340); line(325,340,325,380); line(170,380,170,300); line(170,280,170,120); line(170,320,230,320); line(230,320,230,260); line(230,260,170,260); lifts_and_stairway; outtextxy(290,330,'room with diaf'); outtextxy(240,280,'poin of management'); outtextxy(180,140,'laboratory') End; Procedure second_floor; Begin SetBkcolor(green); rectangle(150,100,450,400); line(170,120,430,120); line(430,120,430,300); line(430,310,430,380); line(430,295,420,295); line(420,295,420,315); line(420,315,430,315); line(430,380,170,380); line(170,380,170,190); line(170,170,170,120); line(170,200,210,200); line(210,200,210,160); line(210,160,170,160); lifts_and_stairway; outtextxy(220,180,'medical laboratory'); outtextxy(370,300,'hutch') End; Procedure exit_first_lift; Begin street_floor; i := 179; for x := 180 to 190 do begin putpixel(x,380,cyan); putpixel(i,380,cyan); dec(i); delay(10000) end; for y := 370 to 390 do begin putpixel(180,y,red); delay(10000) end; i:= 170; for x := 190 downto 180 do begin putpixel(x,380,white); putpixel(i,380,white); inc(i); delay(10000) end; for x := 180 to 300 do begin putpixel(x,390,red); delay(10000) end End; Procedure lift; Begin clrscr; gotoxy(20,25); writeln(i); delay(65535); delay(65535); delay(65535); delay(65535) End; Begin clrscr; driver := detect; initgraph(driver,mode,'c:\bp\bgi\'); restoreCRTMode; {---} textcolor(magenta); writeln('choose floor on which you are found'); writeln; textcolor(white); writeln('1. street floor - cyan'); writeln('2. first floor - blue'); writeln('3. second floor - green'); writeln; readln(floor); clrscr; textcolor(magenta); writeln('choose place where you are found'); writeln; {---} textcolor(white); case floor of 1 : begin writeln('1. room'); writeln; readln(place); SetGraphMode(GetGraphMode); street_floor; if place = 1 then begin outtextxy(422,201,'x'); readkey; for x := 425 to 440 do begin putpixel(x,205,red); delay(10000) end; for y := 205 to 390 do begin putpixel(440,y,red); delay(10000) end; for x := 440 downto 300 do begin putpixel(x,390,red); delay(10000) end end end; 2 : begin writeln('1. room with deaf'); writeln('2. point of management'); writeln('3. laboratory'); writeln; readln(place); SetGraphMode(GetGraphMode); first_floor; case place of 1 : begin outtextxy(342,356,'x'); readkey; for y := 360 to 390 do begin putpixel(345,y,red); delay(10000) end; for x := 345 downto 180 do begin putpixel(x,390,red); delay(10000) end; i := 179; for x := 180 to 190 do begin putpixel(x,380,blue); putpixel(i,380,blue); dec(i); delay(10000) end; for y := 390 downto 370 do begin putpixel(180,y,red); delay(10000) end; i := 170; for x := 190 downto 180 do begin putpixel(x,380,white); putpixel(i,380,white); inc(i); delay(10000) end; TextMode(Font8x8); for i := 2 downto 1 do lift; clrscr; SetGraphMode(GetGraphMode); exit_first_lift; end; 2 : begin outtextxy(197,286,'x'); readkey; for x := 200 downto 160 do begin putpixel(x,290,red); delay(10000) end; for y := 290 to 370 do begin putpixel(160,y,red); delay(10000) end; i := 371; for y := 370 downto 360 do begin putpixel(170,y,blue); putpixel(170,i,blue); inc(i); delay(10000) end; for x := 160 to 180 do begin putpixel(x,370,red); delay(10000) end; i:= 380; for y := 360 to 370 do begin putpixel(170,y,white); putpixel(170,i,white); dec(i); delay(10000) end; clrscr; TextMode(Font8x8); for i := 2 downto 1 do lift; SetGraphMode(GetGraphMode); exit_first_lift; end; 3 : begin outtextxy(252,121,'x'); readkey; for y := 125 downto 110 do begin putpixel(255,y,red); delay(10000) end; for x := 255 downto 160 do begin putpixel(x,110,red); delay(10000) end; y := 110; for x := 160 to 165 do begin putpixel(x,y,red); inc(y); delay(10000) end; clrscr; TextMode(Font8x8); for i := 2 downto 1 do lift; SetGraphMode(GetGraphMode); street_floor; y := 100; for x := 150 to 160 do begin putpixel(x,y,red); inc(y); delay(10000) end; for y := 110 to 390 do begin putpixel(160,y,red); delay(10000) end; for x := 160 to 300 do begin putpixel(x,390,red); delay(10000) end end end end; 3 : begin writeln('1. medical laboratory'); writeln('2. hutch'); writeln; readln(place); SetGraphMode(GetGraphMode); second_floor; case place of 1 : begin outtextxy(187,176,'x'); readkey; for x := 190 downto 160 do begin putpixel(x,180,red); delay(10000) end; for y := 180 to 370 do begin putpixel(160,y,red); delay(10000) end; i := 371; for y := 370 downto 360 do begin putpixel(170,y,green); putpixel(170,i,green); inc(i); delay(10000) end; for x := 160 to 180 do begin putpixel(x,370,red); delay(10000) end; i:= 380; for y := 360 to 370 do begin putpixel(170,y,white); putpixel(170,i,white); dec(i); delay(10000) end; clrscr; TextMode(Font8x8); for i := 3 downto 1 do lift; SetGraphMode(GetGraphMode); exit_first_lift end; 2 : begin outtextxy(422,301,'x'); readkey; for x := 425 to 440 do begin putpixel(x,305,red); delay(10000) end; for y := 305 downto 130 do begin putpixel(440,y,red); delay(10000) end; i := 129; for y := 130 to 140 do begin putpixel(430,y,green); putpixel(430,i,green); dec(i); delay(10000) end; for x := 440 downto 420 do begin putpixel(x,130,red); delay(10000) end; i:= 120; for y := 140 downto 130 do begin putpixel(430,y,white); putpixel(430,i,white); inc(i); delay(10000) end; clrscr; TextMode(Font8x8); for i := 3 downto 1 do lift; SetGraphMode(GetGraphMode); street_floor; i := 129; for y := 130 to 140 do begin putpixel(430,y,cyan); putpixel(430,i,cyan); dec(i); delay(10000) end; for x := 420 to 440 do begin putpixel(x,130,red); delay(10000) end; i:= 120; for y := 140 downto 130 do begin putpixel(430,y,white); putpixel(430,i,white); inc(i); delay(10000) end; for y := 130 to 390 do begin putpixel(440,y,red); delay(10000) end; for x := 440 downto 300 do begin putpixel(x,390,red); delay(10000) end; end end end end; for y := 390 to 410 do begin putpixel(300,y,red); delay(10000); end; readkey End. Добавлено через 5 мин. простейшая вещь: в турбо паскале не пашет Код Begin clrscr; driver := detect; initgraph(driver,mode,'c:\bp\bgi\'); rectangle(410,120,430,140); rectangle(170,360,190,380); rectangle(150,100,155,105); rectangle(150,100,160,110); delay(10000); readkey End. |
Ozzя |
Сообщение
#7
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
Цитата установил Free pascal, компилируется, но выскакивает два окна в одном нарисован лабиринт в другом предлогает выбрать стартовую точку. по идеи после выбора места, при нажатии любой клавиши или enter должна рисоваться линия, как идёт человек, но ничего не происходит {$APPTYPE GUI} |
Текстовая версия | 28.03.2024 19:56 |