getpalette

 Функция            Получает информацию о текущей палитре.

 Синтаксис          #include 
                    void far getpalette(struct palettetype far
                           *palette);

 Файл, содержащий   graphics.h
 прототип

 Описание           Заполняет структуру palettetype, на которую
                    ссылается palette, информацией о размере политры
                    и ее цветах. Константа MAXCOLORS и структура
                    palettype, используемые getpalette, определены в
                    graphics.h следующим образом:

                    #define MAXCOLORS 15

                    struct palettetype{
                           unsigned char size;
                           signed char colors[MAXCOLORS+1];
                    };

                    size дает количество цветов в палитре текущего
                    драйвера и режима.

                    colors - это массив цветов данной палитры.

                    Примечание. getpalette нельзя использовать с
                    драйвером для IBM-8514.

 Возвращаемое       Нет.
 значение

 Переносимость      Функция уникальна для Turbo C++. Она работает
                    только на компьютерах IBM PC и совместимых с ни-
                    ми, оснащенных дисплейными адаптерами, поддержи-
                    вающими графический режим.

 Смотрите также     getbkcolor getcolor getdefaultpalette
                    getmaxcolor setallpalette setpalette

 Пример:

 #include 
 #include 
 #include 
 #include 

 int main(void)
 {
 /* Запрос автоопределения */
 int graphdriver = DETECT, gmode, errorcode;
 struct palettetype pal;
 char psize[80],pval[20];
 int i,ht;
 int y=10';

 /* инициализация графики и локальных переменных */
 initgraph(&graphdriver,&gmode,"");

 /* получение результата инициализации */
 errorcode = graphresult();
 if(errorcode != grOk)  /* если ошибка */
 {
    printf("Ошибка :%s\n",grapherrormsg(errorcode));
    printf("Для останова нажмите любую клавишу\n");
    getch();
    exit(1);  /* завершение с кодом ошибки */
 }
 /* получить копию палитры */
 getpalette(&pal);
 /* преобразовать ее в строку */
 sprintf(psize,"Палитра имеет %d изменяемых элементов",pal.size);
 /* вывести информацию */
 outtextxy(0,y,psize);
 if(pal.size != 0)
 {
    ht = textheight("W");
    y += 2*ht;
    outtextxy(0,y,"Ниже приведены значения цветов палитры");
    y += 2*ht;
    for(i=0; i



   cpp

     getpalettesize

 Функция            Возвращает размер справочной таблицы цветов
                    палитры.

 Синтаксис          #include 
                    int far getpalettesize(void);

 Файл, содержащий   graphics.h
 прототип

 Описание           getpalettesize используется для определения того,
                    как много элементов палитры может быть установле-
                    но для текущего графического режима. Например,
                    EGA в цветовом режиме возвращает 16.

 Возвращаемое       getpalettesize возвращает количество элементов
 значение           в текущей палитре.

 Переносимость      Функция уникальна для Turbo C++. Она работает
                    только на компьютерах IBM PC и совместимых с ни-
                    ми, оснащенных дисплейными адаптерами, поддержи-
                    вающими графический режим.

 Смотрите также     setpalette setallpalette

 Пример:

 #include 
 #include 
 #include 
 #include 

 int main(void)
 {
 /* Запрос автоопределения */
 int graphdriver = DETECT, gmode, errorcode;
 int midx,midy;
 char psize[80];

 /* инициализация графики и локальных переменных */
 initgraph(&graphdriver,&gmode,"");

 /* получение результата инициализации */
 errorcode = graphresult();
 if(errorcode != grOk)  /* если ошибка */
 {
    printf("Ошибка :%s\n",grapherrormsg(errorcode));
    printf("Для останова нажмите любую клавишу\n");
    getch();
    exit(1);  /* завершение с кодом ошибки */
 }
 midx = getmaxx()/2;
 midy = getmaxy()/2;
 /* преобразовать в строку число элементов палитры */
 sprintf(psize,"Палитра имеет %d изменяемых элементов",
        getpalettesize());
 /* вывести информацию */
 settextjustify(CENTER_TEXT,CENTER_TEXT);
 outtextxy(midx,midy,psize);
 /* очистка */
 getch();
 closegraph();
 return 0;
 }