![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Помогите, чем можете!
У меня есть 2 массива Код:
var
XOut : array [0..23] of string;
XClr : array [0..23,0..78] of integer;Код:
procedure XScreenOut;
var x,y : integer
begin
ClrScr;
for y := 0 to 23 do
for x := 0 to 78 do begin
if XClr[y,x] = 1 then begin
TextColor(Back);
TextBackground(Fore);
end;
if x = 78 then writeln(XOut[y,x])
else write(XOut[y,x]);
if XClr[y,x] = 1 then begin
TextColor(Fore);
TextBackground(Back);
end;
end;Никто незнает, как это побороть? ![]() |
|
#2
|
||||
|
||||
|
1. Это-же вроде паскаль, а не дельфи.
2. Это-же вроде не консоль 3. ClrSrc - каждый раз вызывать плохо т.к. будет мерцать. 4. Добавьте в модули Crt. Будет существенно быстрее выводить на экран. |
|
#3
|
||||
|
||||
|
Цитата:
чтобы не мерцало, надо переписывать только те части экрана, которые меняются. есть такая процедура - GoToXY(x, y) которая перемещает курсор на заданную позицию. вызывай ее перед выводом изменений. например Код:
clrscr;
writeln('123');
writeln('456');
writeln('789');
gotoxy(2, 2);
write(' '); |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
разумеется, нет. но форум то не только о дельфи, но и простом паскале
|
|
#6
|
||||
|
||||
|
Ну так это дельфи
А каким боком окромя ClrScr можно это сделать? ![]() |
|
#7
|
||||
|
||||
|
т.е. надо массив из 23 строк вывести на экран, каждый элемент массива в отдельной строке. При этом надо, выводя на экран по символу, проверить, и если значение элемента массива Xclr с индексом y,x (координаты текущего символа) равно 1, то вывести этот символ с инвертированым текстом и фоном.
Код:
TextColor(цвет фона) TextBackground(цвет текста) |