Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];

Вниз

Как управлять цветами в Паскале ?   Найти похожие ветки 

 
Malder   (2002-04-04 21:27) [0]

Я понимаю, что не в тему чуть-чуть =), но просто не знаю куда обратиться - сайтов по паскалю не осталось.

Вообщем, у меня есть задача: матрица, и в каждую ее ячейку нужно ввести цвет. То есть я себе представляю это так:

Допустим, есть матрица 10X10. При запуске программы рисуется таблица 10X10 клеток. И предлагается выбрать цвет. Выбираешь, жмешь Enter, первая ячейка закрашивается выбранным цветом. Далее опять предлагается выбрать цвет, выбираешь... и вторая ячейка окрашивается. Так до тех пор пока не раскраситься вся таблица.
Как это реализовать ? Как можно рисовать в Паскале ? Желательно, как можно более простой вариант и без использование нестандартных модулей. Если кто встречался с таким - с благодарностью приму готовый код (ну или почти готовый). Вообщем, поможите чем-нибудь...

P.S. Модераторы, плиз, не удаляйте данное сообщение. Ну очень нужно.


 
cok   (2002-04-04 21:48) [1]

uses graph;
...
bar,circle,rectange,...-рисуют всякую всячину (прямоугольник, круг, рамку прямоугольника).
А вообще см. хэлп в Паскале.


 
Ilya   (2002-04-04 21:49) [2]

Что бы рисовать в ТР нужно сначало иныциализировать графику, Например:

Uses Graph;
Var gd,Gm:Integer;
Begin
InitGraph(Gd,Gm,"Путь, где лежит графический драйвер, например EgaVga.bgi");


Что бы нарисовать прямоугольник можно использовать Rectangle(x1,y1,x2,y2:Integer);

Закрасить: FloodFill(x,y:Integer,Bordel:Word);

Устанавливает цвет линий: SetColor(c:Word);

Стиль закраски: SetFillStyle(pattern:Word,color:Word);



 
al creator   (2002-04-04 21:51) [3]

Прежде всего надо знать - как ты рисуешь. Есть два варианта : 1) в граф режиме; 2) в текстовом.
Если ты это делаешь в тестовом режиме (это проще - советую делать в нём - в графическом режиме надо учитывать различные режимы (EGA,VGA,SVGA и т.п.), инициализирования экрана, страницы памяти .... дофига - в текстовом меньше и проще... но это текстовый режим...)
.... блин, а я не могу вспомнить для текстового режима функции позиционирования... для граф. могу.... сейчас...
TextColor(value) = задаёт цвет текста (1..16)
TextBackGround(value) =аналогично
Window(x1,y1,x2,y2) - рисует окно с фоном определённом и текстом (настройками определёнными выше)
GotoXY(x,y) - пизиционирует курсор в координатах
Левый верхний угол экрана - 0,0
Если не ошибаюсь - ClrScr - очистка экрана
WhereX,WhereY - координаты курсора(функции)
Дальше сам копай


 
al creator   (2002-04-04 21:52) [4]

сори... цвета от 0..16


 
cok   (2002-04-04 21:59) [5]

Ну ладно, напишу поподробнее :)
ClearViewPort-очистить окно
CloseGraph-закрыть графический режим
Line-чертит линию
LineTo-чертит линию (начиная с текущей позиции)
OutText-вывод текста
SetBkColor-цвет фона
SetColor-цвет того, что будешь рисовать
SetFillStyle-стиль закраски
SetLineStyle-стиль линии
SetTextStyle-стиль текста
...
Параметры см. в хэлпах (я думаю с этим справишься)


 
al creator   (2002-04-04 22:12) [6]

Откопал пример:
Для граф модуля:

uses crt, graph;
var GraphDriver,GraphMode:integer;
begin
GraphDriver:=detect;
InitGraph(GraphDriver,GraphMode,"");
IF GraphResult<>grOk then begin writeln("Fuck error!graph
loose");Halt(1);end;ClearDevice;SetBkColor(..);SetColor(..);
///
тут смотри что тебе писал cok
....
CloseGraph;
end.


 
al creator   (2002-04-04 22:15) [7]

да, вспомнил нюанс - если хочешь, чтобы определённые настройки цвера срабатывали (те, что по умолчанию), то ClrScr или ClearDevice - пиши после них. и цвета от 0..15,blink - это точнее, а то я тебя прошлый раз тоже обманул


 
Malder   (2002-04-05 00:04) [8]

Спасибо, народ. Остался вопрос:

al creator © (04.04.02 21:51)
...Есть два варианта : 1) в граф режиме; 2) в текстовом...


А как рисовать в текстовом режиме ? Потому что мне важно сделать как можно проще, без возни с инцилизацией, дополнительными библиотеками (EgaVga.bgi) и т.д.


 
al creator   (2002-04-05 07:51) [9]

В текстовом режиме 80х25 рисовать можешь спец-символами (псевдографикой)(попробуй через Alt+число(0..255) понабирать и посмотреть, что получиться, можешь через процедуру for i:=0 to 255 do write(i," = ",Chr(i);Chr-получение символа по его коду), я не помню просто, но там есть зарисованные прямоугольники (как на досовских прогресс-барах и всякая срань). Сначала можешь нарисовать своё окно на весь экран, потом пизиционировать курсор, где тебе надо и пиши обычным write определив цвет и бэкграунд-цвет - вот и всё. Код писать готовый некогда и надо ещё искать на чём - уж извини, придётся тебе самому поразбираться!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
7-57906
Sergo
2002-01-21 11:14
2002.04.18
Как можно создать из рисунков многостраничный PDF-документ???


3-57621
IronHawk
2002-03-27 18:55
2002.04.18
Как в обыкновенной форме подключенной к базе через DBGrid, ....


7-57901
ATLANTIDO
2002-01-25 13:35
2002.04.18
кЛАВА


1-57673
ЕвгенийА
2002-04-07 13:10
2002.04.18
Графика


1-57806
LMelkih
2002-04-06 20:09
2002.04.18
Переход на D6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский