IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> GRAPH/CRT, Help
D1ma
сообщение 15.05.2009 18:05
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Дима

Репутация: -  0  +


Изобразить текстовое окно на экране, в котором содержится информация о текущем фоне окна и фона экрана и текущем цвете текста в окне.Окно двигается по экрану с постоянной скоростью слева направо паралельно горизонтальной оси. При нажатии клавиши ENTER меняется меняется текущий цвет фона экрана и текущий цвет текста в окне.
Получилось только вот -( Не знаю как реализовать смену цвета и вывести его. Помогите...)
Код

uses crt,graph;
var gd,gm,x,y:integer;
    c:char;

procedure set_font(x,y:integer);
begin
setlinestyle(0,0,3);
rectangle(x-20,y-18,x+280,y+24);
outtextxy(x,y,TEST:');
outtextxy(x,y,BKCOLOR:');
end;

Procedure SetColor;


end;

begin
gd:=detect;
initgraph(gd,gm,'c:\bgi');

x:=getmaxx div 2-136; y:=getmaxy div 2;
set_font(x,y);
while c<>#27 do begin
if keypressed then c:=readkey;
   if c=#13  then setcolor;
  


end;
closegraph;
end.


Сообщение отредактировано: D1ma - 15.05.2009 18:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 18.05.2009 20:06
Сообщение #2


Гость






uses crt, graph;

procedure set_font(x,y:integer);
var color: integer;
begin
color := getcolor;
setcolor(white);
setlinestyle(0,0,3);
rectangle(x-20,y-18,x+280,y+24);
setcolor(color);
end;

var
x, y: integer;

Procedure CaseColor(change: boolean; var n:integer);
const
prev_n: integer = 0;
colors: array[0 .. 5] of string = (
'BLACK', 'BLUE', 'GREEN', 'CYAN', 'RED', 'MAGENTA'
);
begin
setfillstyle(solidfill, getbkcolor);
bar(x-17, y-15, x+277, y+21);

if change then begin
n := random(6);
Case n of
0 .. 5:
outtextxy(x-10,y+13,'COLOR TEXT:'+colors[n]);
end;
prev_n := n;
setcolor(n);
outtextxy(x-10,y-12,' TEXT IN WINDOW ');
end
else begin
outtextxy(x-10,y+13,'COLOR TEXT:'+colors[prev_n]);
outtextxy(x-10,y-12,' TEXT IN WINDOW ');
end;
end;

var
gd, gm: integer;
c: char;
n: integer;

begin
randomize;
gd := detect;
initgraph(gd,gm,'');

x := 25;
y := getmaxy div 2;

c := #0;

repeat
set_font(x,y);
casecolor(false, n);

if keypressed then c := readkey;
case c of
#13 :
begin
casecolor(true, n);
c:=#0;
end;
end;
delay(40);

setfillstyle(solidfill, getbkcolor);
bar(x-21,y-19,x+281,y+25);
inc(x);
until (x + 280 > getmaxx) or (c = #27);
closegraph;
end.
Если непонятно - говори, где. Я добавлю комментарии.
 К началу страницы 
+ Ответить 
D1ma
сообщение 18.05.2009 20:23
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Дима

Репутация: -  0  +


Цитата(volvo @ 18.05.2009 21:06) *

uses crt, graph;

procedure set_font(x,y:integer);
var color: integer;
begin
color := getcolor;
setcolor(white);
setlinestyle(0,0,3);
rectangle(x-20,y-18,x+280,y+24);
setcolor(color);
end;

var
x, y: integer;

Procedure CaseColor(change: boolean; var n:integer);
const
prev_n: integer = 0;
colors: array[0 .. 5] of string = (
'BLACK', 'BLUE', 'GREEN', 'CYAN', 'RED', 'MAGENTA'
);
begin
setfillstyle(solidfill, getbkcolor);
bar(x-17, y-15, x+277, y+21);

if change then begin
n := random(6);
Case n of
0 .. 5:
outtextxy(x-10,y+13,'COLOR TEXT:'+colors[n]);
end;
prev_n := n;
setcolor(n);
outtextxy(x-10,y-12,' TEXT IN WINDOW ');
end
else begin
outtextxy(x-10,y+13,'COLOR TEXT:'+colors[prev_n]);
outtextxy(x-10,y-12,' TEXT IN WINDOW ');
end;
end;

var
gd, gm: integer;
c: char;
n: integer;

begin
randomize;
gd := detect;
initgraph(gd,gm,'');

x := 25;
y := getmaxy div 2;

c := #0;

repeat
set_font(x,y);
casecolor(false, n);

if keypressed then c := readkey;
case c of
#13 :
begin
casecolor(true, n);
c:=#0;
end;
end;
delay(40);

setfillstyle(solidfill, getbkcolor);
bar(x-21,y-19,x+281,y+25);
inc(x);
until (x + 280 > getmaxx) or (c = #27);
closegraph;
end.
Если непонятно - говори, где. Я добавлю комментарии.


Спасибо за помощь, но что-то у меня токо черный экран и при нажатии любой кнопки выходит из нее.
Модуль Graph рабочий, другие программы работают
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"