|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2009, 15:44 | #1 |
Пользователь
Регистрация: 26.05.2009
Сообщений: 20
|
посмотрите найдите недочеты!
скопипастил программу из Делфи в Паскаль.вроде запускается, работает неплохо. но часто выходит с каким либо exitcodом. как это устранить?(если вообще реально).
вот текст программы,кому не трудно протестируйте на паскале и отпишитесь. заранее благодарен. program kurs; uses crt, graph; var s:string; M:array[1..10] of string; i:integer; ch:char; procedure M1(var M:array of string; var i:integer); var s,pr:string; ff:text; begin writeln('Введите путь к файлу MENU.DAT'); readln(s); assign(ff,s); reset(ff); i:=1; while not eof(ff) do begin readln(ff,pr); M[i]:=pr; i:=i+1; end; i:=i-1; writeln('Всего пунктов меню ',i); close(ff); end; procedure M2(M:array of string; i:integer); var n,x,y,j,gd,gm:integer; a:real; s:string; begin gd:=detect; initgraph(gd,gm,''); if graphresult <>grok then halt(1); cleardevice; setbkcolor(15);//устанавливает цвет фона(сам написал) repeat n:=0; repeat clearviewport; settextstyle(1,0,1); setcolor(4); //красный цвет outtextxy(20,20,'VIXOD-ESC'); for i:=1 to j do begin setcolor(1); //синий цвет rectangle(0,getmaxy-50*j, 200,getmaxy-50*(j-1)); settextstyle(4,0,2); setcolor(2); //зеленый цвет if length(M[j]) > 11 then M[j]:=copy(M[j],1,11); outtextxy(10,getmaxy-50*j+10, M[j]); end; setcolor(4); // красный цвет Line(210,940-n, 225,925-n); //рисуют Line(225,925-n, 225,955-n); //стрелку Line(225,955-n, 210,940-n); //состоящую из Line(215,940-n, 225,930-n); //шести Line(215,940-n, 225,950-n); //линий Line(220,940-n, 225,940-n); ch:=readkey; if ch=#72 then n:=n+50; //движение стрелки if ch=#80 then n:=n-50; //вверх и вниз if n=i*50 then n:=0; if n=-50 then n:=(i-1)*50; //if ch=#27 then closegraph;//если нажат esc,закрывает граф.режим until ch=#13; a:=n/50+1; a:=int(a); //возвращает число равное целой части а str(a,s); setcolor(5); //сиреневый цвет outtextxy(300,300, 'Funktsia nomer'); outtextxy(540,300,s[2]); ch:=readkey; until ch=#27; closegraph;// выключение графического режима end; begin clrscr; M1(M,i); M2(M,i); end. задание: Написать функцию формирования и функцию работы с меню (в графическом режиме). Пункты меню должны храниться в файле MENU.DAT. Функция формирования читает пункты меню из файла и заносит их в массив. Необходимо запомнить количество пунктов меню. Вторая функция обеспечивает вывод на экран и перемещение по меню с помощью клавиш «» и «». Нажатие клавиши ENTER завершает работу функции (но не программы, выход из программы вы¬пол¬няется только при нажатии ESC). При этом в главную функцию возвращается номер выбранного пункта. Написать программу, демонстрирующую применение данных функций Последний раз редактировалось andreww; 27.05.2009 в 18:04. |
27.05.2009, 16:02 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Посмотрел в FPC. Вроде, все работает.
Только вот эта строчка: Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
27.05.2009, 16:08 | #3 |
Пользователь
Регистрация: 26.05.2009
Сообщений: 20
|
а почему когда нажимаешь esc(для выхода) выдается exitcod 216. не подскажите что он означает?
|
27.05.2009, 16:20 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
27.05.2009, 16:58 | #5 |
Пользователь
Регистрация: 26.05.2009
Сообщений: 20
|
until (ch=#13) or (ch=#27)
прописывая так программа начинает работать некорректно.(нажимая esc выводит сначала номер функции, а затем уже выходит); //f ch=#27 then closegraph;//если нажат esc,закрывает граф.режим until ch=#13; a:=n/50+1; int(a); //возвращает число равное целой части а str(a,s); setcolor(5); //сиреневый цвет outtextxy(300,300, 'Funktsia nomer'); outtextxy(540,300,s[2]); ch:=readkey; until ch=#27; closegraph;// выключение графического режима end; а вот так программа выходит только когда нажат enter(выведен на экран номер функции); |
27.05.2009, 17:02 | #6 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Так а как надо-то?
Я особо не разбирался, просто сказал в чем проблема.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
27.05.2009, 17:06 | #7 |
Пользователь
Регистрация: 26.05.2009
Сообщений: 20
|
да проблема по сути устранилась, что уже не может не радовать =)
вообще текст задания такой:Написать функцию формирования и функцию работы с меню (в графическом режиме). Пункты меню должны храниться в файле MENU.DAT. Функция формирования читает пункты меню из файла и заносит их в массив. Необходимо запомнить количество пунктов меню. Вторая функция обеспечивает вывод на экран и перемещение по меню с помощью клавиш «» и «». Нажатие клавиши ENTER завершает работу функции (но не программы, выход из программы выполняется только при нажатии ESC). При этом в главную функцию возвращается номер выбранного пункта. Написать программу, демонстрирующую применение данных функций. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите пожалуйста какую функцию необходимо использовать... | Андрю)(@ | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.12.2008 00:03 |
Подскажите пожалуйста какую функцию необходимо использовать... | Андрю)(@ | Помощь студентам | 1 | 09.12.2008 23:53 |
Какую программу можно написать на делфи чтобы она пользовалась большим спросом | Xander | Свободное общение | 8 | 03.07.2008 16:11 |
Нужно сцепить базу написанную на MySQL с Делфи 7 | Solovei_MC | БД в Delphi | 0 | 13.06.2008 20:15 |
автоматическое создание элементов подскажите пожалуйста. можно ли в Делфи организовать следующее: по зад | AniMEshKa | Помощь студентам | 4 | 19.04.2008 15:45 |