Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: показано как и куда можно спрятать переменные диалога
Kibor
Отправлено: 24 Марта, 2015 - 01:48:57
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Простой калькулятор на основе немодально диалога.
Демонстрация устройства программы с диалогом.

переменные убраны вниз для удобства программирования. заполнение переменных диалога вынесено в функцию и тож внизу.

что бы не плодить кучу функций все расчеты идут в одной, но правильно разбивать.

CODE:
dialog_per();//установка переменных диалога и его создание

enabletimer(0);//таймер пуск

lop: sleep(20); goto lop;//Это петля что бы скрипт крутился

function raschet()//эта функция расчитает нам результат с строки выражений
{
strcpy(#t[0], text_edit0[0]);// в массив char строчку
siz=size(#t[0]);

k=0;
e[k]="";
for (n1=0; n1<siz; n1++)//разбить на части - числа и знаки арифметические
{
if (n1!=0)
{
if (t[n1]=='*' || t[n1]=='/' || t[n1]=='-' || t[n1]=='+'){k++; e[k]=t[n1];k++; e[k]="";goto s;}
}
e[k]=e[k]+t[n1];
s:;
}
k++;

ws: for (n1=0; n1<k; n1++)//мнжить делить
{
if (e[n1]=="*" || e[n1]=="/")
{
ch1=formatsn(e[n1-1]); ch2=formatsn(e[n1+1]);
if (e[n1]=="*")e[n1-1]=format(ch1*ch2);
if (e[n1]=="/")e[n1-1]=format(ch1/ch2);
k=k-2;
for (n2=n1; n2<k; n2++)e[n2]=e[n2+2];
goto ws;
}
}

ws1: for (n1=0; n1<k; n1++)// тут отнять сложить
{
if (e[n1]=="+" || e[n1]=="-")
{
ch1=formatsn(e[n1-1]); ch2=formatsn(e[n1+1]);
if (e[n1]=="+")e[n1-1]=format(ch1+ch2);
if (e[n1]=="-")e[n1-1]=format(ch1-ch2);
k=k-2;
for (n2=n1; n2<k; n2++)e[n2]=e[n2+2];
goto ws1;
}
}

text_edit0[0]=e[0];//результат в edit
}

CREATE_TIMER(0, 50)//таймер отслеживания нажатий кнопок
{
for (n=0; n<15; n++)//перебор кнопок кроме равно и запись знака в строку
{
if (flag_button0[n]>0){flag_button0[n]=0;text_edit0[0]=text_edit0[0]+text_button0[n];}
}
if (flag_button0[15]>0){flag_button0[15]=0;
raschet();//если нажато равно - посчитать
}
if (flag_button0[16]>0){flag_button0[16]=0;
text_edit0[0]="";//это сброс
}
}

function dialog_per()//тут идет установка переменных диалога
{
pos_size_button0[0][0]=4; pos_size_button0[0][1]=170; pos_size_button0[0][2]=92; pos_size_button0[0][3]=45;
pos_size_button0[1][0]=4; pos_size_button0[1][1]=123; pos_size_button0[1][2]=45; pos_size_button0[1][3]=45;
pos_size_button0[2][0]=51; pos_size_button0[2][1]=123; pos_size_button0[2][2]=45; pos_size_button0[2][3]=45;
pos_size_button0[3][0]=98; pos_size_button0[3][1]=123; pos_size_button0[3][2]=45; pos_size_button0[3][3]=45;
pos_size_button0[4][0]=4; pos_size_button0[4][1]=76; pos_size_button0[4][2]=45; pos_size_button0[4][3]=45;
pos_size_button0[5][0]=51; pos_size_button0[5][1]=76; pos_size_button0[5][2]=45; pos_size_button0[5][3]=45;
pos_size_button0[6][0]=98; pos_size_button0[6][1]=76; pos_size_button0[6][2]=45; pos_size_button0[6][3]=45;
pos_size_button0[7][0]=4; pos_size_button0[7][1]=29; pos_size_button0[7][2]=45; pos_size_button0[7][3]=45;
pos_size_button0[8][0]=51; pos_size_button0[8][1]=29; pos_size_button0[8][2]=45; pos_size_button0[8][3]=45;
pos_size_button0[9][0]=98; pos_size_button0[9][1]=29; pos_size_button0[9][2]=45; pos_size_button0[9][3]=45;
pos_size_button0[10][0]=98; pos_size_button0[10][1]=170; pos_size_button0[10][2]=45; pos_size_button0[10][3]=45;
pos_size_button0[11][0]=145; pos_size_button0[11][1]=29; pos_size_button0[11][2]=45; pos_size_button0[11][3]=45;
pos_size_button0[12][0]=145; pos_size_button0[12][1]=76; pos_size_button0[12][2]=45; pos_size_button0[12][3]=45;
pos_size_button0[13][0]=145; pos_size_button0[13][1]=123; pos_size_button0[13][2]=45; pos_size_button0[13][3]=45;
pos_size_button0[14][0]=145; pos_size_button0[14][1]=170; pos_size_button0[14][2]=45; pos_size_button0[14][3]=45;
pos_size_button0[15][0]=192; pos_size_button0[15][1]=76; pos_size_button0[15][2]=45; pos_size_button0[15][3]=139;
pos_size_button0[16][0]=192; pos_size_button0[16][1]=29; pos_size_button0[16][2]=45; pos_size_button0[16][3]=45;
text_button0[0]="0"; text_button0[1]="1"; text_button0[2]="2"; text_button0[3]="3"; text_button0[4]="4";
text_button0[5]="5"; text_button0[6]="6"; text_button0[7]="7"; text_button0[8]="8"; text_button0[9]="9";
text_button0[10]="."; text_button0[11]="/"; text_button0[12]="*"; text_button0[13]="-"; text_button0[14]="+"; text_button0[15]="="; text_button0[16]="С";
//////////
pos_size_edit0[0][0]=4; pos_size_edit0[0][1]=4; pos_size_edit0[0][2]=233; pos_size_edit0[0][3]=20;
text_edit0[0]="";

/////////////////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0]);//создание диалога
getdisplay(col, x, y);//узнать экрана разрешение для вывода в центре
showdialog(0, "Калькулятор", x/2-123, y/2-123, 247, 247, 1, 0);//покажем сам диалог калькулятора
}

//Переменные можно убрать вниз. в кибор не важно это
int pos_size_button0[17][4];
string text_button0[17];
int flag_button0[17];
int pos_size_edit0[1][4];
string text_edit0[1];
int col, x, y, n, n1, n2, siz, k;
char t[512];
string e[50];
double ch1, ch2;




это код диалога самого. скопировать в файл, сохранить на диск, дать расширение .di
открыть в визуальном редакторе диалогов..
CODE:
0Поле 0123456789./*-+=С 4 4 -1 -1 -1 170 4 -1 -1 -1 92 233 -1 -1 -1 45 20 -1 -1 -1 4 -1 -1 -1 -1 123 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 51 -1 -1 -1 -1 123 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 98 -1 -1 -1 -1 123 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 4 -1 -1 -1 -1 76 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 51 -1 -1 -1 -1 76 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 98 -1 -1 -1 -1 76 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 4 -1 -1 -1 -1 29 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 51 -1 -1 -1 -1 29 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 98 -1 -1 -1 -1 29 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 98 -1 -1 -1 -1 170 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 145 -1 -1 -1 -1 29 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 145 -1 -1 -1 -1 76 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 145 -1 -1 -1 -1 123 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 145 -1 -1 -1 -1 170 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 192 -1 -1 -1 -1 76 -1 -1 -1 -1 45 -1 -1 -1 -1 139 -1 -1 -1 -1 192 -1 -1 -1 -1 29 -1 -1 -1 -1 45 -1 -1 -1 -1 45 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 buttoneditcheckcombostatic17 1 0 0 0


Диалог456 259 246 245 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Готовые скрипты »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by