{
setfillstyle(1, LIGHTGRAY);// заливка сплошным светло серым цветом
bar3d(x,y, x+width, y+height,0,0);// вычерчивается трехмерное изображение
//параллелепипеда и закрашивается его передняя грань
rectangle(x+faset, y+ faset , x+width -faset, y+height- faset);// вычерчивает белымцветом //прямоугольник внутри
moveto(x, y);
lineto(x+faset, y+faset) ;// скос кнопки
moveto(x+width,y);
lineto(x+width-faset, y+faset) ; //скос кнопки
moveto(x,y +height);
lineto(x+faset, y+height-faset) ; //скос кнопки
moveto(x+width,y +height);
lineto(x+width-faset, y+height-faset) ; //скос кнопки
setfillstyle(1, DARKGRAY); //цвет заливки темно- серый
floodfill(x+width-3,y+10,WHITE);// заполнить замкнутую фигуру темно-серым цветом ,
// очертить границу фигуры белым цветом
floodfill(x+10,y+height-3,WHITE);
}
class Button1:public Button// производный класс – кнопка с номером
{
public:
Button1( int xi, int yi ) : Button(xi,yi) { draw("1");}
void virtual action ();
int selected ( char c);
};
void Button1:: action () // функция обработки нажатия на кнопку
{
bar (10,100,150,110); //заполняет цветом заливки область, не обводя ее,
// используется , чтобы стереть предыдущую надпись
outtextxy(10,100,"Pressed button 1");// выводится надпись
}
Int Button1::selected ( char c)
{return ( c= ='1');}
class Button2 :public Button {
public:
Button2( int xi, int yi ) : Button(xi,yi) { draw("2");}
void action ();
int selected ( char c);
};