
Void menu(void)
{
int i; /* Переменная цикла */
win(31,5,53,7); /* Прорисовка бордюра окна по координатам*/
textcolor(TC); /* Установка цвета символов */
for(i=0; i<NumPos; i++) /* Цикл по всем пунктам меню */
{
goto(xMenu[i],6); /* Установка курсора в нужную позицию */
cputs(TextMenu[i]); /* Вывод пункта меню */
}
}
/*******************************************************************/
/* Активизация соответствующего пункта меню */
/*******************************************************************/
void activ(int pos)
{
goto(xMenu[pos],6); /* Установка курсора в нужную позицию */
textcolor(TA); /* Установка цвета символа (светло-красный) */
cputs(TextMenu[pos]); /* Вывод слова в меню белым цветом */
}
/*******************************************************************/
/* Функция первого пункта меню */
/*******************************************************************/
Void func0(void)
{
win(27,15,52,18); /* Прорисовка бордюра окна по координатам */
goto(29,16); /* Установка курсора в нужную позицию */
textcolor(TC); /* Установка цвета текста */
cputs("Выбран пункт меню File"); /* Вывод сообщения */
goto(38,17); /* Установка курсора в нужную позицию */
cputs("OK"); /* Вывод сообщения */
getch(); /* Ожидание нажатия любой клавиши */
clear(27,15,52,18,BLACK); /* Очистка экрана */
}
/*******************************************************************/
/* Очистка экрана */
/*******************************************************************/
void clear(int left, int top, int right, int bottom, int BgColor)
{
window(left, top, right, bottom); /* Установка граний окна */
textbackground(BgColor); /* Установка цвета фона */
clrscr(); /* Очистка окна (заполнение цветом фона) */
window(1,1,80,25); /* Установка граний окна */
textbackground(BG); /* Установка цвета фона */
}
/*******************************************************************/
/* Функция второго пункта меню */
/*******************************************************************/
Void func1(void)
{
char text_str[256];
win(23,15,56,18); /* Прорисовка бордюра окна по координатам */
goto(25,15); /* Установка курсора в нужную позицию */
textcolor(TC); /* Установка цвета текста */
cputs("Редактирование исходных данных");
goto(26,17); /* Установка курсора в нужную позицию */
cputs("Введите C,мкФ (0.15)="); /* Вывод сообщения */
sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */
C=edit(47,17,8,text_str); /* Вызов функции ввода емкости */
clear(23,15,56,18,BLACK); /* Очистка экрана */
}
/*******************************************************************/
/* Функция третьего пункта меню */
/*******************************************************************/
Void func2(void)
{
char text_str[256];
win(23,15,56,18); /* Прорисовка бордюра окна по координатам */
goto(28,15); /* Установка курсора в нужную позицию */
textcolor(TC); /* Установка цвета текста */
cputs("Ввели следующие данные:");
goto(30,17); /* Установка курсора в нужную позицию */
sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */
cputs("C,мкФ (0.15)= "); /* Вывод сообщения */
cputs(text_str); /* Вывод сообщения */
getch(); /* Ожидание нажатия любой клавиши */
clear(23,15,56,18,BLACK); /* Очистка экрана */
}
/*******************************************************************/
/* Ввод значения емкости */
/*******************************************************************/
float edit(int x, int y, int kol, char *txt)
{
float f;
char str[30]; /* Строка для ввода данных */
char ch; /* Вводимый символ */
int kom=0; /* Количество введенных '.' */
int x1; /* Положение курсора */
int j; /* Переменная цикла */
_setcursortype(_NORMALCURSOR); /* Включение курсора */
strcpy(str,txt); /* Копируем начальные значения */
/* Устанавливаем позицию курсора */
x1 = x+strlen(str); /* Позиция символа в строке */
do
{
/* Кол-во точек в строке */
if(strchr(str,'.') != 0) kom=1; else kom=0;
goto(x,y); /* Установка курсора в нужную позицию */
/* Очистка области вывода */
for(j=x; j<x+kol;j++) putch(' ');
/* Вывод текущей строки */
goto(x,y); cputs(str); goto(x1,y);
/* Ввод символа с клавиатуры */
if((ch=getch()) == 0) ch = getch();
/* Ввод значения */
if(ch >= '0' && ch <= '9' || ch == '.')
{
if(ch == '.') if(++kom > 1) continue;
/*Превысили ли необходимую длину */
if(strlen(str) < kol)
{
/* Раздвигание строки */
for(j=strlen(str)+1;j >= x1-x;--j)
str[j] = str[j-1];
/* Запись символа */
str[x1-x] = ch; str[strlen(str)] = 0;
x1++; /* Увеличение позиции курсора */
}
}
if(ch == 8 && x1 != x) /* Нажата клавиша забой */
{
/* Удаление символа в строке */
for(j=x1-x-1; j <= strlen(str); j++)
str[j] = str[j+1];
/* Уменьшение позиции курсора */
if(--x1 < x) x1=x;
}
if(ch == 83) /* Нажата клавиша Delete */
{
/* Удаление символа в строке */
for(j=x1-x; j <= strlen(str); j++)
str[j] = str[j+1];
}
if(ch == 75) /* Нажата клавиша <- */
/* Уменьшение позиции курсора */
if(--x1 < x) x1=x;
if(ch == 77) /* Нажата клавиша -> */
if(++x1 > x+strlen(str)) x1 = x+strlen(str);
}
while(ch != 13 && ch != 27);
_setcursortype(_NOCURSOR); /* Выключение курсора */
return(atof(str));
}