Как сделать цвет экрана, ну например, белым в текстовом режиме?
textbackground(15);
Не все так просто, а як же підключеня бібліотеки, і встановлення тексту чорним.
uses crt;
....
begin
...
textbackground(15);
textcolor(0);
...
end.
1 - не думаю что он не догадается про uses crt;
2 - цвет шрифта может быть любым!
TextAttr:=$10*BG+T;
Где BG - цвет фона, а Т - текста.
Цвет фона задается в пределах 0..7
Хотя есть какой-то способ обойти это ограничение... (где-то выставляется флаг об использовании бита)
===============================
Procedure TextBackground(Color : Byte);
Замечания:
Color - целочисленное выражение в диапазоне 0 .. 7, соответствющее одной из первых восьми констант цвета в текстовом режиме. В модуле Crt существует
переменная типа байт - TextAttr, которая используется для хранения текущего
видеоатрибута. TextBackground устанавливает биты 4-6 переменной TextAttr в
Color.
=======================================
Procedure TextColor(Color : Byte);
Замечания:
Параметр Color - целочисленное выражение в диапазоне 0 .. 15,
соответствующий одной из констант цвета текстового режима, определенных в
модуле Crt.
В модуле Crt существует переменная типа байт - TextAttr, которая
используется для хранения текущего видеоатрибута. TextColor устанавливает
биты 0-3 переменной TextAttr в Color. Если Color больше 15, то бит 7 (бит,
определяюший мигание) тоже поднимается.
Я так и думал, что последует ответ: TextBackground. Однако не всё так просто.
Я имел ввиду не цвет ФОНА текста, а цвет ЭКРАНА, на который выводится текст любого цвета. То есть к примеру также, как в графическом режиме процедура setbkcolor.
Если человек знает что такое uses crt то думаю он знает что такое и textbackground(15);
А цвет можно поменять просто заменив цвет каждого символа :-)
var
i : integer;
c : ^char;
begin
for i:=0 to 80*25-1 do
begin
c := ptr($B800,$0000+2*i+1);
c^ := chr(128);
end
end.
И почему форум отступы хавает?
Молодец neex!. Именно это я и имел в виду. Однако у твоего способа есть один недостаток: он работает только в оконном режиме! В полном экране цвет по прежнему чёрный. Что посоветуешь?? ;)
Изменяй не память, а палитру:
Порт 3D8h - номер регистра, 3D9h - данные (в формате R-G-B). Затем номер автоматом увеличивается. Не канает через порты - меняй через ф-ии BIOS, по-моему int 10,10..
Чтобы залить весь экран цветом, после TextBackground мдет ClrScr... или я не в ту степь иду?