
uses
   ncurses;

var
    f, b: Smallint;
begin

 initscr();
 cbreak();
 noecho();

 if (has_colors()) then
  begin
	start_color();

	pair_content(0, @f, @b);
  printw(PAnsiChar('pair 0 contains (%d,%d)'#10), f, b);
	getch();

	printw('Initializing pair 1 to red/black'#10);
	init_pair(1, COLOR_RED, COLOR_BLACK);
	bkgdset(chtype(' ') OR COLOR_PAIR(1));
	printw('RED/BLACK'#10);
	getch();

	printw('Initializing pair 2 to white/blue'#10);
	init_pair(2, COLOR_WHITE, COLOR_BLUE);
	bkgdset(chtype(' ') OR COLOR_PAIR(2));
	printw('WHITE/BLUE'#10);
	getch();

	printw('Resetting colors to pair 0'#10);
	bkgdset(chtype(' ') OR COLOR_PAIR(0));
	printw('Default Colors'#10);
	getch();

	printw('Resetting colors to pair 1'#10);
	bkgdset(chtype(' ') OR COLOR_PAIR(1));
	printw('RED/BLACK'#10);
	getch();

	printw('Setting screen to pair 0'#10);
	bkgd(chtype(' ') OR COLOR_PAIR(0));
	getch();

	printw('Setting screen to pair 1'#10);
	bkgd(chtype(' ') OR COLOR_PAIR(1));
	getch();

	printw('Setting screen to pair 2'#10);
	bkgd(chtype(' ') OR COLOR_PAIR(2));
	getch();

	printw('Setting screen to pair 0'#10);
	bkgd(chtype(' ') OR COLOR_PAIR(0));
	getch();

 end
 else
 begin
	printw('This demo requires a color terminal'#10);

	getch();
    end;
    endwin();
end.
