Помощь - Поиск - Пользователи - Календарь
Полная версия: Crt модуль
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Alexn
Подскажите, кто знает, почему в графическом режиме если
uses Crt,Graph,Dos;
то Write('=>'); ничего не выводит (хотя курсор уходит на 2 символа), а если
uses Graph,Dos; то рисует.
В программе сначала SetBkColr(синий)ж
SetColor(белый) тоже не помогает.
Ozzя
1. Используй directvideo:=false; после установки граф. режима. Write/WriteLn по умолчанию используют процедуры вывода символов напрямую в видеопамять. В графическом же режиме структура памяти другая. При использовании directvideo:=false используются процедура bios 10h, что позволяет использовать Write/WriteLn в графическом режиме.
2. Рекомендуется все же использовать outtext (outtextxy)
Alexn
Спасибо.
Мне нужено Write('=>'); потому что после него стоит readln(cmd); Exec(cmd,'');
Существуют ли операторы в модуле Graph для ввода символа в произвольной точке, как OutTextXY для вывода?
Ozzя
Нет. Процедур ввода символов в модуле Graph нет вообще.
Ozzя
Можно написать самому:
установка курсора в произвольную точку - moveto
обработка нажатий клавиш - readkey
вывод "эха" на экран outtextxy

Uses Graph;
Var
grDriver : Integer;
grMode : Integer;
ErrCode : Integer;
s : String;
sx,sy : Integer;
Begin
grDriver:=Detect;
InitGraph(grDriver, grMode, 'c:bpbgi');
ErrCode:=GraphResult;
If ErrCode = grOk Then
Begin
{ Графика }
s:='Enter something here:';
{ Запомнили текущее CP }
sx:=GetX;
sy:=GetY;
OutText(s);
{ Подсчитали новое значение CP }
sx:=sx+TextWidth(s);
sy:=sy+TextHeight(s);
{ Переместили CP }
MoveTo(sx,sy);
{ Проверка перемещения указателя }
PutPixel(sx,sy,Red);
ReadLn;
CloseGraph;
End
Else WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode));
End.
trminator
Недавно была тема, называлась примерно "Ввод текста в графическм режиме". Там приводился пример подпрограммы ввода символов.
Alexn
Спасибо lol.gif !
Дож
"Turbo Pascal" Фаронова,
глава 24. Текстовый ввод/вывод в графическом режиме

Здесь описывается строение векторных шривтов, а так же модуль для реализации write/read в Граф. режиме.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.