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

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

1. WolfVitaliy - 16 Июля, 2017 - 22:51:34 - перейти к сообщению
Здравствуйте.
Помогите сделать переключатель галок.
Знаю что есть примеры на форуме. Нашел несколько. Но они слишком сложные для меня. Два дня потратил. Не решил.
Так что жду помощи.

Суть работы простая.
Условие такое что может быть включена только одна галка.
Включаете первую галку, вторая выключается сама. И наоборот.

И как раз будет наглядный пример для новичков.
Заранее благодарен.

 Цитата:

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

pos_size_check0[0][0]=32;
pos_size_check0[0][1]=39;
pos_size_check0[0][2]=60;
pos_size_check0[0][3]=20;

pos_size_check0[1][0]=32;
pos_size_check0[1][1]=87;
pos_size_check0[1][2]=60;
pos_size_check0[1][3]=20;

text_check0[0]="Галка 0";
text_check0[1]="Галка 1";

flag_check0[0]=1;
flag_check0[1]=0;

//////////

createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
//////////

showdialog(0, "Диалог", 498, 324, 250, 300, 1, 1);
//////////

loop() sleep(10);//Убрать после теста
2. 007wan - 17 Июля, 2017 - 04:27:21 - перейти к сообщению
WolfVitaliy, у меня была такая тема вот, что мне ответил Kibor за что его я благодарю:
"одноразовая галка" (Отобразить)

Только вот единственное, что я знаю как сделать сам скрипт к этим галкам, но скрипт срабатывает, только если второй раз щелкнуть на эту же галку.
Смотри тут оригинал
(Добавление)
Или проще говоря вот сам код
CODE:
function perekluchatel_galok()//реализация переключателя галок
{
if (flag_check[0]==1 && t_flag_check[0]!=flag_check[0])
{flag_check[1]=0; flag_check[2]=0; t_flag_check[1]=0; t_flag_check[2]=0; t_flag_check[0]=flag_check[0];}

if (flag_check[1]==1 && t_flag_check[1]!=flag_check[1])
{flag_check[0]=0; flag_check[2]=0; t_flag_check[0]=0; t_flag_check[2]=0; t_flag_check[1]=flag_check[1];}

if (flag_check[2]==1 && t_flag_check[2]!=flag_check[2]){
flag_check[0]=0; flag_check[1]=0; t_flag_check[0]=0; t_flag_check[1]=0; t_flag_check[2]=flag_check[2];}

if (flag_check[0]==0 && flag_check[1]==0 && flag_check[2]==0)
{
if (t_flag_check[0]!=flag_check[0]){flag_check[0]=1;t_flag_check[0]=flag_check[0];}
if (t_flag_check[1]!=flag_check[1]){flag_check[1]=1;t_flag_check[1]=flag_check[1];}
if (t_flag_check[2]!=flag_check[2]){flag_check[2]=1;t_flag_check[2]=flag_check[2];}
}

(Добавление)
А вообще, если будут вопросы, то вводи в поиск или ищи нужные темы создателя программы, чем по ляму раз создавать старые темы
(Добавление)
Кстати, Kibor, а возможно ли сделать так, что бы вышеперечисленный пример с "одноразовой" галкой, при нажатии любой галки выполняется скрипт, а можно ли сделать так, что бы скрипт выбранной галки выполнится по нажатию кнопки
3. Kibor - 17 Июля, 2017 - 04:58:57 - перейти к сообщению
 007wan пишет:
можно ли сделать так, что бы скрипт выбранной галки выполнится по нажатию кнопки


CODE:

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

pos_size_check0[0][0]=32;
pos_size_check0[0][1]=39;

pos_size_check0[0][2]=60;
pos_size_check0[0][3]=20;

pos_size_check0[1][0]=32;
pos_size_check0[1][1]=87;
pos_size_check0[1][2]=60;
pos_size_check0[1][3]=20;

text_check0[0]="Галка 0";
text_check0[1]="Галка 1";

flag_check0[0]=1;
flag_check0[1]=0;

//////////
int t_flag_check[2];

createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
//////////

showdialog(0, "Диалог", 498, 324, 250, 300, 1, 1);
//////////
sleep(200);
flag_check0[0]=1;
flag_check0[1]=0;
t_flag_check[0]=flag_check0[0];
t_flag_check[1]=flag_check0[1];

loop()
{
if (flag_check0[0]==1 && t_flag_check[0]!=flag_check0[0])
{
beep(1000, 500);
}
if (flag_check0[1]==1 && t_flag_check[1]!=flag_check0[1])
{
beep(2000, 500);
}

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









function perekluchatel_galok()//реализация переключателя галок
{
if (flag_check0[0]==1 && t_flag_check[0]!=flag_check0[0])
{flag_check0[1]=0; t_flag_check[1]=0; t_flag_check[0]=flag_check0[0];}

if (flag_check0[1]==1 && t_flag_check[1]!=flag_check0[1])
{flag_check0[0]=0; t_flag_check[0]=0; t_flag_check[1]=flag_check0[1];}

if (flag_check0[0]==0 && flag_check0[1]==0)
{
if (t_flag_check[0]!=flag_check0[0]){flag_check0[0]=1;t_flag_check[0]=flag_check0[0];}
if (t_flag_check[1]!=flag_check0[1]){flag_check0[1]=1;t_flag_check[1]=flag_check0[1];}
}
}
4. 007wan - 17 Июля, 2017 - 05:10:18 - перейти к сообщению
Остается добавить flag_button и всё будет как я задумал) или...
(Добавление)
Блин, не получается...Надо что бы была реализация переключений галок+скрипт самих галок будет выполнятся после нажатии кнопки(flag_button)
(Добавление)
Я не знаю, может как-то так:
а (Отобразить)
5. Kibor - 17 Июля, 2017 - 05:24:36 - перейти к сообщению
так кнопку добавьте и сделайте что б скрипт выполнялся если flag_button равно 1


sleep(200);
flag_check0[0]=1;
flag_check0[1]=0;
t_flag_check[0]=flag_check0[0];
t_flag_check[1]=flag_check0[1];
while (flag_button0[0]==0)sleep(25);

loop()
{
6. 007wan - 17 Июля, 2017 - 05:29:12 - перейти к сообщению
 Kibor пишет:
так кнопку добавьте и сделайте что б скрипт выполнялся если flag_button равно 1


sleep(200);
flag_check0[0]=1;
flag_check0[1]=0;
t_flag_check[0]=flag_check0[0];
t_flag_check[1]=flag_check0[1];
while (flag_button0[0]==0)sleep(25);

loop()
{


А понял збс, сделаю, проверю... А можно ли в EDIT-немодальные в текстовом поле перевести строку?

Powered by ExBB FM 1.0 Final