Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » макрос

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

1. AdryV - 16 Июля, 2016 - 10:18:44 - перейти к сообщению
Решил для начала спросить
вот код исключительно немодального диалога.
Спойлер (Отобразить)

задумка:в общем идея все таже что и в этом
чего хочу добиться запихнуть тот весь код с выбором кнопок какие нажимать и по какому таймеру срабатывать в эти три поля
стоит галка, выбран список 0, в поле эдит введено числовое значение
переключаюсь на список 1, список 0 сохраняется в файл и становится активным так как галка включена, если выключена то не выполнять
в списке 1 ввожу другие параметры они также сохраняются в текстовый файл но не активны так как галка не стоит
и тд.
что бы все менялось от выбора списка для окна теоритически не составит проблемы, но как это в итоге реализовать что бы нажимало кнопки соответствующие... и по таймеру
так как в итоге получу что все списки привязаны к галке 0 и полю эдит 0 Растерялся
2. Kibor - 16 Июля, 2016 - 10:33:52 - перейти к сообщению
CODE:
CREATE_TIMER(0, 100)//Íîìåð òàéìåðà, âûïîëíåíèå òàéìåðà ÷åðåç ìñåê.
{
if (flag_check0[0]==1)
{
if (flag_combo0[0]==0)beep(formatsn(text_edit0[0]), 50);
if (flag_combo0[0]==1)beep(formatsn(text_edit0[0]), 150);
if (flag_combo0[0]==2)beep(formatsn(text_edit0[0]), 500);
/////................................
}
}
3. AdryV - 16 Июля, 2016 - 10:56:24 - перейти к сообщению
Kibor , кажись немного понял буду разбираться, спасибо
4. AdryV - 17 Июля, 2016 - 07:42:15 - перейти к сообщению
 Kibor пишет:
CODE:
CREATE_TIMER(0, 100)//Íîìåð òàéìåðà, âûïîëíåíèå òàéìåðà ÷åðåç ìñåê.
{
if (flag_check0[0]==1)
{
if (flag_combo0[0]==0)beep(formatsn(text_edit0[0]), 50);
if (flag_combo0[0]==1)beep(formatsn(text_edit0[0]), 150);
if (flag_combo0[0]==2)beep(formatsn(text_edit0[0]), 500);
/////................................
}
}

чутка запутался ??? Непонял!
каждый по отдельности работает
но мне нужно что бы после настройки работали по галке, тоисть если в пред настройках стоит галка на списке 0 и на списке 2 что бы они совместно работали или наоборот что бы не работали если галка не стоит
5. Kibor - 17 Июля, 2016 - 07:57:43 - перейти к сообщению
Короче не знаю. Все можно сделать.

Изучайте
CODE:
int pos_size_edit0[2][4];
string text_edit0[2];

pos_size_edit0[0][0]=190; pos_size_edit0[0][1]=6; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=192; pos_size_edit0[1][1]=40; pos_size_edit0[1][2]=100; pos_size_edit0[1][3]=20;
text_edit0[0]="Поле 0"; text_edit0[1]="Поле 1";

//////////

int pos_size_check0[2][4];
string text_check0[2];
int flag_check0[2];

pos_size_check0[0][0]=7; pos_size_check0[0][1]=9; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=7; pos_size_check0[1][1]=44; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
text_check0[0]="Галка 0"; text_check0[1]="Галка 1";
flag_check0[0]=0; flag_check0[1]=0;

//////////

int pos_size_combo0[2][4];
string text_combo0[2][3];
int strok_combo0[2];
int flag_combo0[2];

pos_size_combo0[0][0]=79; pos_size_combo0[0][1]=7; pos_size_combo0[0][2]=100; pos_size_combo0[0][3]=80;
pos_size_combo0[1][0]=78; pos_size_combo0[1][1]=41; pos_size_combo0[1][2]=100; pos_size_combo0[1][3]=80;
strok_combo0[0]=3; strok_combo0[1]=3;
text_combo0[0][0]="0-100"; text_combo0[0][1]="0-200"; text_combo0[0][2]="0-300";
text_combo0[1][0]="1-100"; text_combo0[1][1]="1-200"; text_combo0[1][2]="1-300";
flag_combo0[0]=0; flag_combo0[1]=0;

//////////

createdialog(0, EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0] |
COMBO, #pos_size_combo0[0][0], #text_combo0[0][0], #strok_combo0[0], #flag_combo0[0]);
//////////

showdialog(0, "Диалог", 558, 234, 313, 108, 1, 1);
//////////
enabletimer(0);

string t="", t1="";

loop() sleep(10);//Убрать после теста

CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
t="";
if (flag_check0[0]==1){t=t+text_combo0[0][flag_combo0[0]]+" "+text_edit0[0]+" ";}
if (flag_check0[1]==1){t=t+text_combo0[1][flag_combo0[1]]+" "+text_edit0[1];}
if (t!=t1){t1=t; textout(0, 100, 50, t, 1);}
}


В Кибор все очень просто. Тут флаги контролов не надо считывать. Они сами меняют значения при изменение контрола. Просто используйте их в цикле и проверяйте if и комбинируйте.
6. AdryV - 17 Июля, 2016 - 08:20:34 - перейти к сообщению
 Kibor пишет:
Изучайте

спасиб за код немного познавательного нашел.
но видимо я не правильно изложил свою мысль...
я хочу использовать лишь одну галку и лишь одно поле эдит
к примеру ваш код:
активировал галку 0, в списке выбрал 0-200, в поле эдит вбил 1000 это все вывело на экране
далее переключаю список на 0-100 сбрасывается галка 0 и поле эдит 0, но список 0-200 и эдит 1000 продолжает отображаться так как стояла галка, далее продолжаю настройку списка 0-100 в поле эдит меняю на 3000 и включаю галку 0.
в итоге получаю два текста на экране зависяцих от галки 0 и поля эдит 0
но с разными данными.
эммм вродь все изложил... уже и не знаю как мои мысли разжевать( извиняюсь ))))
7. Kibor - 17 Июля, 2016 - 08:28:13 - перейти к сообщению
Ну так и надо было сразу приводить код с одной галкой и 10 эдитами и полями. Что б не гадать.
8. AdryV - 17 Июля, 2016 - 08:33:33 - перейти к сообщению
 Kibor пишет:
Ну так и надо было сразу приводить код с одной галкой и 10 эдитами и полями. Что б не гадать.

не 10 эдитов и полей а 1.
в первом посте ведь приведен пример только окна 1 галка 1 комбо(список из 40) и 1 поле эдит...

Powered by ExBB FM 1.0 Final