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

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Смена цвета фона в графическом режиме
сообщение
Сообщение #1


Знаток
****

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

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


Не выходит сменить цвет фона в графическом режиме, процедура SetBkColor не меняет ничего... экран остается черный. Я порылся в поиске, пару прецендентов нашёл, но подходящих решений, и внятного ответа не попалось. В графике пока понимаю немного, никаких видео-режимов, или еще чегот подобного не менял и не использую. Как решить подобную проблему? unsure.gif


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


mea culpa
*****

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

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


А графический режим какой? Стандартный, или какой-то сторонний модуль подключаешь, типа vesa256?
Кодом покажи, короче.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

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

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


Цитата(Unconnected @ 8.07.2009 18:58) *

А графический режим какой? Стандартный, или какой-то сторонний модуль подключаешь, типа vesa256?
Кодом покажи, короче.

Без ничего, весь код это

uses graph,crt;
var Gdriver,Gmod:integer;
begin
clrscr;
Gdriver:=detected;
initgraph(Gdriver,Gmod,'');
getmaxx;getmaxy;
readln;
close graph;
end.

а разрешение выходит в итоге 1024 на 768


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


mea culpa
*****

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

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


Во-первых - ты прямо тут набирал, что ли? И какое разрешение тебе надо? И где ты тут цвет фона устанавливаешь? И зачем очищать экран в текстовом режиме перед переходом в графический?

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

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

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


Цитата(Unconnected @ 8.07.2009 19:24) *

Во-первых - ты прямо тут набирал

не=) просто, остальное там заливка, линии и кружочки, ничего большего, ну и setbkcolor, который фон не меняет...


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


mea culpa
*****

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

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


А как же "close graph;" в два слова? Этот оператор пишется слитно. И ты не ответил про разрешение.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Знаток
****

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

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


Цитата(Unconnected @ 8.07.2009 20:06) *

А как же "close graph;" в два слова? Этот оператор пишется слитно. И ты не ответил про разрешение.

"close graph;"в два слова - очепятка, хз как получилась, я в курсе что слитно smile.gif , разрешение мне надо 640 на 480.
Раньше я пользовал Турбо Паскаль 7.0 там всё было норм, и разрешение 640 на 480, вот пару дней назад перешёл на фри паскаль, и тут уже пошли несостыковочки...

Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Так. Или ты приводишь файл, содержащий точный текст программы, вызывающей проблемы (с указанием компилятора), или тема закрывается как "переливание воды". Неужели не ясно, что важно ВСЕ, чтобы понять, почему оно не работает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Знаток
****

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

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


Кусок что есть...среда-FPC
program  pole2;

uses
Crt,Graph;
var
Gdriver,Gmod:integer;
x,y,x1,y1:integer;
procedure Fon;
const
H_size = 1000;

V_size = 600;

Gora:array[1..8] of integer = (H_size div 3, 600,

H_size div 2, 2 * V_size div 3,

2 * H_size div 3, 600,

H_size div 3, 600);
Z1 = 500;

Z2 = 500;
begin
setbkcolor(15); {<====}
setfillstyle(10,8);
setlinestyle(0,0,3);
setcolor(8);
drawpoly(4,Gora);
floodfill(Z1,Z2,8);
rectangle(1,1,1000,600);
setcolor(1);
rectangle(950,550,1000,600);
end;
function popal(x,y,zvet:integer):boolean;

begin
if getpixel(x,y)= 1 then popal:=true else popal:=false;
end;
begin
Gdriver:=detect;
initgraph(Gdriver,Gmod,'');
Fon;
readln;
closegraph;
end.


Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


mea culpa
*****

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

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


Мой FreePascal заболел, поэтому компилировал в обычном TP7, изменённые строки отмечены, цвет фона меняется.

program  pole2;

uses
Crt,Graph;
var
Gdriver,Gmod:integer;
x,y,x1,y1:integer;
procedure Fon;
const
H_size = 1000;

V_size = 600;

Gora:array[1..8] of integer = (H_size div 3, 600,

H_size div 2, 2 * V_size div 3,

2 * H_size div 3, 600,

H_size div 3, 600);
Z1 = 500;

Z2 = 500;
begin
setbkcolor(blue); //<== поставил символьное обозначение цвета вместо числового, иногда помогает
setfillstyle(10,8);
setlinestyle(0,0,3);
setcolor(8);
drawpoly(4,Gora);
floodfill(Z1,Z2,8);
rectangle(1,1,1000,600);
setcolor(1);
rectangle(950,550,1000,600);
end;
function popal(x,y,zvet:integer):boolean;

begin
if getpixel(x,y)= 1 then popal:=true else popal:=false;
end;
begin

Gdriver:=0; //<==
GMod:=0; //<==
initgraph(Gdriver,Gmod,'');
Fon;
readln;
closegraph;
end.



Разрешение 640/480, за счёт установки Gdriver(или GMod, точно не помню) в 0.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






FPC 2.2.4:

program  pole2;

uses
Crt,Graph;
var
Gdriver,Gmod:integer;
x,y,x1,y1:integer;
procedure Fon;
const
H_size = 1000;

V_size = 600;

Gora:array[1..8] of integer = (H_size div 3, 600,

H_size div 2, 2 * V_size div 3,

2 * H_size div 3, 600,

H_size div 3, 600);
Z1 = 500;

Z2 = 500;
begin
setbkcolor(15);
cleardevice; { <--- Вот это добавить, тогда отрабатывает SetBkColor }
setfillstyle(10,8);
setlinestyle(0,0,3);
setcolor(8);
drawpoly(4,Gora);
floodfill(Z1,Z2,8);
rectangle(1,1,1000,600);
setcolor(1);
rectangle(950,550,1000,600);
end;
function popal(x,y,zvet:integer):boolean;

begin
if getpixel(x,y)= 1 then popal:=true else popal:=false;
end;
begin
Gdriver:=VGA; GMod := VGAHI; { <--- Установка 640*480 }
initgraph(Gdriver,Gmod,'');
Fon;
readln;
closegraph;
end.
Естественно, координаты всех фигур - меняй, они будут некорректными smile.gif И никогда не привязывайся к конкретным значениям ширины/высоты экрана - GetMaxX/GetMaxY совсем не просто так придумали.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Знаток
****

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

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


Цитата(volvo @ 8.07.2009 21:29) *

Естественно, координаты всех фигур - меняй, они будут некорректными smile.gif И никогда не привязывайся к конкретным значениям ширины/высоты экрана - GetMaxX/GetMaxY совсем не просто так придумали.

smile.gif пасыба, учту smile.gif


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

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

 





- Текстовая версия 28.03.2024 18:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name