grBIN |
Отправлено: 11 Марта, 2018 - 04:13:14
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Вообщем вот диалог, после виз.редактора. Лимиты не превысил.
Файл виз.редактора
Ни до доработки, ни после работать не хочет, вернее такое ощущение что просто луп висит, а диалог не отображается.
Сам код, после небольшой доработки, для читабельности (Отобразить)CODE:int pos_size_button3[2][4];
string text_button3[2];
int flag_button3[2];
pos_size_button3[0][0]=20; pos_size_button3[0][1]=286; pos_size_button3[0][2]=150; pos_size_button3[0][3]=20;
pos_size_button3[1][0]=20; pos_size_button3[1][1]=315; pos_size_button3[1][2]=250; pos_size_button3[1][3]=35;
text_button3[0]="Загрузить"; text_button3[1]="Сохранить";
//////////
int pos_size_edit3[12][4];
string text_edit3[12];
pos_size_edit3[0][0]=70; pos_size_edit3[0][1]=50; pos_size_edit3[0][2]=100; pos_size_edit3[0][3]=20;
pos_size_edit3[1][0]=70; pos_size_edit3[1][1]=80; pos_size_edit3[1][2]=100; pos_size_edit3[1][3]=20;
pos_size_edit3[2][0]=250; pos_size_edit3[2][1]=50; pos_size_edit3[2][2]=100; pos_size_edit3[2][3]=20;
pos_size_edit3[3][0]=250; pos_size_edit3[3][1]=80; pos_size_edit3[3][2]=100; pos_size_edit3[3][3]=20;
pos_size_edit3[4][0]=70; pos_size_edit3[4][1]=140; pos_size_edit3[4][2]=100; pos_size_edit3[4][3]=20;
pos_size_edit3[5][0]=70; pos_size_edit3[5][1]=170; pos_size_edit3[5][2]=100; pos_size_edit3[5][3]=20;
pos_size_edit3[6][0]=250; pos_size_edit3[6][1]=140; pos_size_edit3[6][2]=100; pos_size_edit3[6][3]=20;
pos_size_edit3[7][0]=250; pos_size_edit3[7][1]=170; pos_size_edit3[7][2]=100; pos_size_edit3[7][3]=20;
pos_size_edit3[8][0]=70; pos_size_edit3[8][1]=230; pos_size_edit3[8][2]=100; pos_size_edit3[8][3]=20;
pos_size_edit3[9][0]=70; pos_size_edit3[9][1]=260; pos_size_edit3[9][2]=100; pos_size_edit3[9][3]=20;
pos_size_edit3[10][0]=250; pos_size_edit3[10][1]=230; pos_size_edit3[10][2]=100; pos_size_edit3[10][3]=20;
pos_size_edit3[11][0]=250; pos_size_edit3[11][1]=260; pos_size_edit3[11][2]=100; pos_size_edit3[11][3]=20;
text_edit3[0]="Поле 0"; text_edit3[1]="Поле 1"; text_edit3[2]="Поле 2"; text_edit3[3]="Поле 3";
text_edit3[4]="Поле 4"; text_edit3[5]="Поле 5"; text_edit3[6]="Поле 6"; text_edit3[7]="Поле 7";
text_edit3[8]="Поле 8"; text_edit3[9]="Поле 9"; text_edit3[10]="Поле 10"; text_edit3[11]="Поле 11";
//////////
int pos_size_static3[18][4];
string text_static3[18];
pos_size_static3[0][0]=20; pos_size_static3[0][1]=50; pos_size_static3[0][2]=30; pos_size_static3[0][3]=20;
pos_size_static3[1][0]=20; pos_size_static3[1][1]=80; pos_size_static3[1][2]=30; pos_size_static3[1][3]=20;
pos_size_static3[2][0]=200; pos_size_static3[2][1]=50; pos_size_static3[2][2]=30; pos_size_static3[2][3]=20;
pos_size_static3[3][0]=200; pos_size_static3[3][1]=80; pos_size_static3[3][2]=30; pos_size_static3[3][3]=20;
pos_size_static3[4][0]=20; pos_size_static3[4][1]=140; pos_size_static3[4][2]=30; pos_size_static3[4][3]=20;
pos_size_static3[5][0]=20; pos_size_static3[5][1]=170; pos_size_static3[5][2]=30; pos_size_static3[5][3]=20;
pos_size_static3[6][0]=200; pos_size_static3[6][1]=140; pos_size_static3[6][2]=30; pos_size_static3[6][3]=20;
pos_size_static3[7][0]=200; pos_size_static3[7][1]=170; pos_size_static3[7][2]=30; pos_size_static3[7][3]=20;
pos_size_static3[8][0]=20; pos_size_static3[8][1]=230; pos_size_static3[8][2]=30; pos_size_static3[8][3]=20;
pos_size_static3[9][0]=20; pos_size_static3[9][1]=260; pos_size_static3[9][2]=30; pos_size_static3[9][3]=20;
pos_size_static3[10][0]=200; pos_size_static3[10][1]=230; pos_size_static3[10][2]=42; pos_size_static3[10][3]=20;
pos_size_static3[11][0]=200; pos_size_static3[11][1]=260; pos_size_static3[11][2]=100; pos_size_static3[11][3]=20;
pos_size_static3[12][0]=200; pos_size_static3[12][1]=290; pos_size_static3[12][2]=100; pos_size_static3[12][3]=20;
pos_size_static3[13][0]=300; pos_size_static3[13][1]=290; pos_size_static3[13][2]=100; pos_size_static3[13][3]=15;
pos_size_static3[14][0]=300; pos_size_static3[14][1]=305; pos_size_static3[14][2]=100; pos_size_static3[14][3]=15;
pos_size_static3[15][0]=300; pos_size_static3[15][1]=320; pos_size_static3[15][2]=100; pos_size_static3[15][3]=20;
pos_size_static3[16][0]=301; pos_size_static3[16][1]=335; pos_size_static3[16][2]=100; pos_size_static3[16][3]=20;
pos_size_static3[17][0]=130; pos_size_static3[17][1]=10; pos_size_static3[17][2]=200; pos_size_static3[17][3]=20;
text_static3[0]="Login"; text_static3[1]="Pass"; text_static3[2]="Login"; text_static3[3]="Pass";
text_static3[4]="Login"; text_static3[5]="Pass"; text_static3[6]="Login"; text_static3[7]="Pass";
text_static3[8]="Login"; text_static3[9]="Pass"; text_static3[10]="Login"; text_static3[11]="Pass";
text_static3[12]="из Txt файла вида:"; text_static3[13]="login"; text_static3[14]="pass";
text_static3[15]="login"; text_static3[16]="pass"; text_static3[17]="TEST";
//////////
createdialog(3, BUTTON, #pos_size_button3[0][0], #text_button3[0], #flag_button3[0] |
EDIT, #pos_size_edit3[0][0], #text_edit3[0] |
STATIC, #pos_size_static3[0][0], #text_static3[0]);
//////////
showdialog(3, "Диалог", 504, 159, 380, 400, 1, 1);
//////////
loop() sleep(100);//Убрать после теста |
|
|
grBIN |
Отправлено: 11 Марта, 2018 - 12:02:52
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Zireael пишет: Максимум 3 диалога, т. е. номера 0, 1, 2.
Я думал, можно вызывать 3 диалога одновременно а не всего 3 диалога. Я суммарно хотел использовать 5 по очереди. То есть главное окно, 3 различных опции которые используют свой скрипт и еще одно во время скрипта.
До вашего сообщения хотел просто инклудить их в начале скрипта (закомментив showdialog)
А потом просто вызывать их там где нужно, с помощью showdialog, и закрыть с hidedialog.
Получается сейчас мне нужно раскидать 3 диалога по разным файлам типа dialog1_1,
dialog1_2, dialog1_3. убрать из этих файлов объявление переменных.
Затем объявить переменные в начале основного скрипта, а вызывать диалоги уже инклудами этих файлов? и закрывать их с помощью destroydialog().
Звучит как то хреново, потому что вместо того что бы 1 раз в начале скрипта создать диалоги, а потом просто вызывать их по мере необходимости. нужно фактически каждый раз создавать их заново и тащить весь этот код каждый раз при вызове.
#include dialog1_0 (Отобразить)CODE:pos_size_button3[0][0]=20; pos_size_button3[0][1]=286; pos_size_button3[0][2]=150; pos_size_button3[0][3]=20;
pos_size_button3[1][0]=20; pos_size_button3[1][1]=315; pos_size_button3[1][2]=250; pos_size_button3[1][3]=35;
text_button3[0]="Загрузить"; text_button3[1]="Сохранить";
//////////
int pos_size_edit3[12][4];
string text_edit3[12];
pos_size_edit3[0][0]=70; pos_size_edit3[0][1]=50; pos_size_edit3[0][2]=100; pos_size_edit3[0][3]=20;
pos_size_edit3[1][0]=70; pos_size_edit3[1][1]=80; pos_size_edit3[1][2]=100; pos_size_edit3[1][3]=20;
pos_size_edit3[2][0]=250; pos_size_edit3[2][1]=50; pos_size_edit3[2][2]=100; pos_size_edit3[2][3]=20;
pos_size_edit3[3][0]=250; pos_size_edit3[3][1]=80; pos_size_edit3[3][2]=100; pos_size_edit3[3][3]=20;
pos_size_edit3[4][0]=70; pos_size_edit3[4][1]=140; pos_size_edit3[4][2]=100; pos_size_edit3[4][3]=20;
pos_size_edit3[5][0]=70; pos_size_edit3[5][1]=170; pos_size_edit3[5][2]=100; pos_size_edit3[5][3]=20;
pos_size_edit3[6][0]=250; pos_size_edit3[6][1]=140; pos_size_edit3[6][2]=100; pos_size_edit3[6][3]=20;
pos_size_edit3[7][0]=250; pos_size_edit3[7][1]=170; pos_size_edit3[7][2]=100; pos_size_edit3[7][3]=20;
pos_size_edit3[8][0]=70; pos_size_edit3[8][1]=230; pos_size_edit3[8][2]=100; pos_size_edit3[8][3]=20;
pos_size_edit3[9][0]=70; pos_size_edit3[9][1]=260; pos_size_edit3[9][2]=100; pos_size_edit3[9][3]=20;
pos_size_edit3[10][0]=250; pos_size_edit3[10][1]=230; pos_size_edit3[10][2]=100; pos_size_edit3[10][3]=20;
pos_size_edit3[11][0]=250; pos_size_edit3[11][1]=260; pos_size_edit3[11][2]=100; pos_size_edit3[11][3]=20;
text_edit3[0]="Поле 0"; text_edit3[1]="Поле 1"; text_edit3[2]="Поле 2"; text_edit3[3]="Поле 3";
text_edit3[4]="Поле 4"; text_edit3[5]="Поле 5"; text_edit3[6]="Поле 6"; text_edit3[7]="Поле 7";
text_edit3[8]="Поле 8"; text_edit3[9]="Поле 9"; text_edit3[10]="Поле 10"; text_edit3[11]="Поле 11";
//////////
int pos_size_static3[18][4];
string text_static3[18];
pos_size_static3[0][0]=20; pos_size_static3[0][1]=50; pos_size_static3[0][2]=30; pos_size_static3[0][3]=20;
pos_size_static3[1][0]=20; pos_size_static3[1][1]=80; pos_size_static3[1][2]=30; pos_size_static3[1][3]=20;
pos_size_static3[2][0]=200; pos_size_static3[2][1]=50; pos_size_static3[2][2]=30; pos_size_static3[2][3]=20;
pos_size_static3[3][0]=200; pos_size_static3[3][1]=80; pos_size_static3[3][2]=30; pos_size_static3[3][3]=20;
pos_size_static3[4][0]=20; pos_size_static3[4][1]=140; pos_size_static3[4][2]=30; pos_size_static3[4][3]=20;
pos_size_static3[5][0]=20; pos_size_static3[5][1]=170; pos_size_static3[5][2]=30; pos_size_static3[5][3]=20;
pos_size_static3[6][0]=200; pos_size_static3[6][1]=140; pos_size_static3[6][2]=30; pos_size_static3[6][3]=20;
pos_size_static3[7][0]=200; pos_size_static3[7][1]=170; pos_size_static3[7][2]=30; pos_size_static3[7][3]=20;
pos_size_static3[8][0]=20; pos_size_static3[8][1]=230; pos_size_static3[8][2]=30; pos_size_static3[8][3]=20;
pos_size_static3[9][0]=20; pos_size_static3[9][1]=260; pos_size_static3[9][2]=30; pos_size_static3[9][3]=20;
pos_size_static3[10][0]=200; pos_size_static3[10][1]=230; pos_size_static3[10][2]=42; pos_size_static3[10][3]=20;
pos_size_static3[11][0]=200; pos_size_static3[11][1]=260; pos_size_static3[11][2]=100; pos_size_static3[11][3]=20;
pos_size_static3[12][0]=200; pos_size_static3[12][1]=290; pos_size_static3[12][2]=100; pos_size_static3[12][3]=20;
pos_size_static3[13][0]=300; pos_size_static3[13][1]=290; pos_size_static3[13][2]=100; pos_size_static3[13][3]=15;
pos_size_static3[14][0]=300; pos_size_static3[14][1]=305; pos_size_static3[14][2]=100; pos_size_static3[14][3]=15;
pos_size_static3[15][0]=300; pos_size_static3[15][1]=320; pos_size_static3[15][2]=100; pos_size_static3[15][3]=20;
pos_size_static3[16][0]=301; pos_size_static3[16][1]=335; pos_size_static3[16][2]=100; pos_size_static3[16][3]=20;
pos_size_static3[17][0]=130; pos_size_static3[17][1]=10; pos_size_static3[17][2]=200; pos_size_static3[17][3]=20;
text_static3[0]="Login"; text_static3[1]="Pass"; text_static3[2]="Login"; text_static3[3]="Pass";
text_static3[4]="Login"; text_static3[5]="Pass"; text_static3[6]="Login"; text_static3[7]="Pass";
text_static3[8]="Login"; text_static3[9]="Pass"; text_static3[10]="Login"; text_static3[11]="Pass";
text_static3[12]="из Txt файла вида:"; text_static3[13]="login"; text_static3[14]="pass";
text_static3[15]="login"; text_static3[16]="pass"; text_static3[17]="TEST";
//////////
createdialog(3, BUTTON, #pos_size_button3[0][0], #text_button3[0], #flag_button3[0] |
EDIT, #pos_size_edit3[0][0], #text_edit3[0] |
STATIC, #pos_size_static3[0][0], #text_static3[0]);
//////////
showdialog(3, "Диалог", 504, 159, 380, 400, 1, 1);
//////////
Есть еще какие то выходы из ситуации, или я верно думаю?
P.S. В описании диалоговых окон нашел такую строчку Спойлер (Отобразить)первый параметр номер диалога. можно до 3 одновременно выводить.
(Добавление)
Сейчас еще раз прошелся по коду, обратил внимание на то, что createdialog использует указатели на массивы
CODE:createdialog(3, BUTTON, #pos_size_button3[0][0], #text_button3[0], #flag_button3[0] |
EDIT, #pos_size_edit3[0][0], #text_edit3[0] |
STATIC, #pos_size_static3[0][0], #text_static3[0]);
А это значит что если у меня, допустим 2 диалога с номерами 1, 2 и в:
1 будет 10 кнопок
2 будет 5 кнопок
и я вызову их по очереди то:
объявляю переменные;
#include dialog1_1 сработает как надо.
destroydialog(1)
#include dialog1_2 заменит значения для 5 первых кнопок, для остальных оставит то же,
а createdialog, раз использует указатель - сделает интерфейс со всеми кнопками 1-5 и 6-10
значит нужно как то: либо изменять массив, либо указать кол-во кнопок createdialog.
P.S. А если старые 5 кнопок будут за пределами этого диалога, возможно вызовет ошибку.
P.S.S. Даже если допустить, что destroydialog удаляет старые массивы, то мне тупо компилятор не даст закинуть два раза в скрипте #include dialog1_1 и #include dialog1_2 с объявлением переменных, т.к. увидит что я объявил их 2 раза
В общем я в замешательстве...(Отредактировано автором: 11 Марта, 2018 - 12:07:44) |
|
|
Kibor |
Отправлено: 11 Марта, 2018 - 13:10:44
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Можно 3 Одновременно
Для использования 5 или 50 диалогов, никто не мешает их создавать по мере необходимости. На лету выполнения программы и удалять когда они не нужны.
А одновременно можно не более 3.
(Добавление)
Вот 2 диалога одновременно.
При их создание надо изменить лишь переменную в свойствах диалога (0 1 2)
И будут разные диалоги которые можно запускать одновременно и которые будут иметь разные переменные.
CODE:int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=103; pos_size_button0[0][1]=126; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Кнопка 0 диалога";
//////////
int pos_size_edit0[1][4];
string text_edit0[1];
pos_size_edit0[0][0]=49; pos_size_edit0[0][1]=72; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
text_edit0[0]="Поле 0 диалога";
//////////
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=23; pos_size_static0[0][1]=22; pos_size_static0[0][2]=100; pos_size_static0[0][3]=20;
text_static0[0]="Текст 0 диалога";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////
showdialog(0, "Диалог 0", 558, 234, 250, 206, 1, 1);
//////////
int pos_size_button1[1][4];
string text_button1[1];
int flag_button1[1];
pos_size_button1[0][0]=103; pos_size_button1[0][1]=126; pos_size_button1[0][2]=100; pos_size_button1[0][3]=20;
text_button1[0]="Кнопка 1 диалога";
//////////
int pos_size_edit1[1][4];
string text_edit1[1];
pos_size_edit1[0][0]=49; pos_size_edit1[0][1]=72; pos_size_edit1[0][2]=100; pos_size_edit1[0][3]=20;
text_edit1[0]="Поле 1 диалога";
//////////
int pos_size_static1[1][4];
string text_static1[1];
pos_size_static1[0][0]=23; pos_size_static1[0][1]=22; pos_size_static1[0][2]=100; pos_size_static1[0][3]=20;
text_static1[0]="Текст 1 диалога";
//////////
createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0] |
EDIT, #pos_size_edit1[0][0], #text_edit1[0] |
STATIC, #pos_size_static1[0][0], #text_static1[0]);
//////////
showdialog(1, "Диалог 1", 758, 234, 250, 206, 1, 1);
//////////
loop() sleep(10);//Убрать после теста
(Добавление)
Создание 5 диалогов с одновременным вызовом трех.
CODE://Создаем перемпенные на 5 диалогов
int кнопка0[1][4];
string текст_кнопка0[1];
int флаг_кнопка0[1];
кнопка0[0][0]=37; кнопка0[0][1]=48; кнопка0[0][2]=100; кнопка0[0][3]=20;
текст_кнопка0[0]="Кнопка 0";
////////////////
int кнопка1[1][4];
string текст_кнопка1[1];
int флаг_кнопка1[1];
кнопка1[0][0]=37; кнопка1[0][1]=48; кнопка1[0][2]=100; кнопка1[0][3]=20;
текст_кнопка1[0]="Кнопка 1";
////////////////
int кнопка2[1][4];
string текст_кнопка2[1];
int флаг_кнопка2[1];
кнопка2[0][0]=37; кнопка2[0][1]=48; кнопка2[0][2]=100; кнопка2[0][3]=20;
текст_кнопка2[0]="Кнопка 2";
////////////////
int кнопка3[1][4];
string текст_кнопка3[1];
int флаг_кнопка3[1];
кнопка3[0][0]=37; кнопка3[0][1]=48; кнопка3[0][2]=100; кнопка3[0][3]=20;
текст_кнопка3[0]="Кнопка 3";
////////////////
int кнопка4[1][4];
string текст_кнопка4[1];
int флаг_кнопка4[1];
кнопка4[0][0]=37; кнопка4[0][1]=48; кнопка4[0][2]=100; кнопка4[0][3]=20;
текст_кнопка4[0]="Кнопка 4";
//////////
//Вызываем одновременно 0 3 и 4
createdialog(0, BUTTON, #кнопка0[0][0], #текст_кнопка0[0], #флаг_кнопка0[0]);
showdialog(0, "Диалог0", 158, 234, 176, 158, 1, 1);
//////////
createdialog(1, BUTTON, #кнопка3[0][0], #текст_кнопка3[0], #флаг_кнопка3[0]);
showdialog(1, "Диалог3", 358, 234, 176, 158, 1, 1);
//////////
createdialog(2, BUTTON, #кнопка4[0][0], #текст_кнопка4[0], #флаг_кнопка4[0]);
showdialog(2, "Диалог4", 558, 234, 176, 158, 1, 1);
loop()
{
if (флаг_кнопка3[0]>0)//при нажатие на кнопку среденего диалога он уничтожится и вызовится диалог четвертый
{
флаг_кнопка3[0]=0;
destroydialog(1);
createdialog(1, BUTTON, #кнопка2[0][0], #текст_кнопка2[0], #флаг_кнопка2[0]);
showdialog(1, "Диалог2", 358, 234, 176, 158, 1, 1);
}
sleep(10);//Убрать после теста
} |
|
|
Zireael |
Отправлено: 11 Марта, 2018 - 14:02:51
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Ещё вариант:
code (Отобразить)CODE:// основной диалог
int pos_size_button0[4][4];
string text_button0[4];
int flag_button0[4];
pos_size_button0[0][0]=10; pos_size_button0[0][1]=10; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
pos_size_button0[1][0]=10; pos_size_button0[1][1]=35; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
pos_size_button0[2][0]=10; pos_size_button0[2][1]=60; pos_size_button0[2][2]=100; pos_size_button0[2][3]=20;
pos_size_button0[3][0]=10; pos_size_button0[3][1]=85; pos_size_button0[3][2]=100; pos_size_button0[3][3]=20;
text_button0[0]="Диалог1"; text_button0[1]="Диалог2"; text_button0[2]="Диалог3"; text_button0[3]="Диалог4";
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
showdialog(0, "Диалог0", 635, 390, 250, 152, 1, 1);
//////////
// 4 диалога вспомогательных,
// Диалог1
int pos_size_button1[1][4];
string text_button1[1];
int flag_button1[1];
pos_size_button1[0][0]=7; pos_size_button1[0][1]=8; pos_size_button1[0][2]=100; pos_size_button1[0][3]=20;
text_button1[0]="Закрыть1";
// Диалог2
int pos_size_button2[2][4];
string text_button2[2];
int flag_button2[2];
pos_size_button2[0][0]=7; pos_size_button2[0][1]=8; pos_size_button2[0][2]=60; pos_size_button2[0][3]=20;
pos_size_button2[1][0]=70; pos_size_button2[1][1]=8; pos_size_button2[1][2]=40; pos_size_button2[1][3]=20;
text_button2[0]="Закрыть2"; text_button2[1]="Кнопка";
// Диалог3
int pos_size_button3[1][4];
string text_button3[1];
int flag_button3[1];
pos_size_button3[0][0]=7; pos_size_button3[0][1]=8; pos_size_button3[0][2]=60; pos_size_button3[0][3]=20;
text_button3[0]="Закрыть3";
int pos_size_static3[1][4];
string text_static3[1];
pos_size_static3[0][0]=70; pos_size_static3[0][1]=10; pos_size_static3[0][2]=60; pos_size_static3[0][3]=20;
text_static3[0]="Текст";
// Диалог4
int pos_size_button4[1][4];
string text_button4[1];
int flag_button4[1];
pos_size_button4[0][0]=7; pos_size_button4[0][1]=8; pos_size_button4[0][2]=100; pos_size_button4[0][3]=20;
text_button4[0]="Закрыть4";
///
enabletimer(0);
loop() sleep(10);
CREATE_TIMER(0, 500)
{
if(flag_button0[0]>0) // если нажата кнопка Диалог1
{
flag_button0[0]=0;
destroydialog(1); // уничтожаем встпомогательный диалог
createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0]); // создаём диалог1
showdialog(1, "Диалог1", 935, 390, 202, 64, 0, 1);
}
if(flag_button0[1]>0) // если нажата кнопка Диалог2
{
flag_button0[1]=0;
destroydialog(1); // уничтожаем встпомогательный диалог
createdialog(1, BUTTON, #pos_size_button2[0][0], #text_button2[0], #flag_button2[0]); // создаём диалог2
showdialog(1, "Диалог2", 935, 390, 232, 80, 0, 1);
}
if(flag_button0[2]>0) // если нажата кнопка Диалог3
{
flag_button0[2]=0;
destroydialog(1);
createdialog(1, BUTTON, #pos_size_button3[0][0], #text_button3[0], #flag_button3[0] |
STATIC, #pos_size_static3[0][0], #text_static3[0]);
showdialog(1, "Диалог3", 935, 390, 262, 64, 0, 1);
}
if(flag_button0[3]>0) // если нажата кнопка Диалог4
{
flag_button0[3]=0;
destroydialog(1);
createdialog(1, BUTTON, #pos_size_button4[0][0], #text_button4[0], #flag_button4[0]);
showdialog(1, "Диалог4", 935, 390, 202, 64, 0, 1);
}
// если нажата 'Закрыть'
if(flag_button1[0]>0){flag_button1[0]=0; destroydialog(1);}
if(flag_button2[0]>0){flag_button2[0]=0; destroydialog(1);}
if(flag_button3[0]>0){flag_button3[0]=0; destroydialog(1);}
if(flag_button4[0]>0){flag_button4[0]=0; destroydialog(1);}
} |
|
|
grBIN |
Отправлено: 11 Марта, 2018 - 14:08:03
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Спойлер (Отобразить) Kibor пишет: Можно 3 Одновременно
Для использования 5 или 50 диалогов, никто не мешает их создавать по мере необходимости. На лету выполнения программы и удалять когда они не нужны.
А одновременно можно не более 3.
(Добавление)
Вот 2 диалога одновременно.
При их создание надо изменить лишь переменную в свойствах диалога (0 1 2)
И будут разные диалоги которые можно запускать одновременно и которые будут иметь разные переменные.
CODE:int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=103; pos_size_button0[0][1]=126; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Кнопка 0 диалога";
//////////
int pos_size_edit0[1][4];
string text_edit0[1];
pos_size_edit0[0][0]=49; pos_size_edit0[0][1]=72; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
text_edit0[0]="Поле 0 диалога";
//////////
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=23; pos_size_static0[0][1]=22; pos_size_static0[0][2]=100; pos_size_static0[0][3]=20;
text_static0[0]="Текст 0 диалога";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////
showdialog(0, "Диалог 0", 558, 234, 250, 206, 1, 1);
//////////
int pos_size_button1[1][4];
string text_button1[1];
int flag_button1[1];
pos_size_button1[0][0]=103; pos_size_button1[0][1]=126; pos_size_button1[0][2]=100; pos_size_button1[0][3]=20;
text_button1[0]="Кнопка 1 диалога";
//////////
int pos_size_edit1[1][4];
string text_edit1[1];
pos_size_edit1[0][0]=49; pos_size_edit1[0][1]=72; pos_size_edit1[0][2]=100; pos_size_edit1[0][3]=20;
text_edit1[0]="Поле 1 диалога";
//////////
int pos_size_static1[1][4];
string text_static1[1];
pos_size_static1[0][0]=23; pos_size_static1[0][1]=22; pos_size_static1[0][2]=100; pos_size_static1[0][3]=20;
text_static1[0]="Текст 1 диалога";
//////////
createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0] |
EDIT, #pos_size_edit1[0][0], #text_edit1[0] |
STATIC, #pos_size_static1[0][0], #text_static1[0]);
//////////
showdialog(1, "Диалог 1", 758, 234, 250, 206, 1, 1);
//////////
loop() sleep(10);//Убрать после теста
(Добавление)
Создание 5 диалогов с одновременным вызовом трех.
CODE://Создаем перемпенные на 5 диалогов
int кнопка0[1][4];
string текст_кнопка0[1];
int флаг_кнопка0[1];
кнопка0[0][0]=37; кнопка0[0][1]=48; кнопка0[0][2]=100; кнопка0[0][3]=20;
текст_кнопка0[0]="Кнопка 0";
////////////////
int кнопка1[1][4];
string текст_кнопка1[1];
int флаг_кнопка1[1];
кнопка1[0][0]=37; кнопка1[0][1]=48; кнопка1[0][2]=100; кнопка1[0][3]=20;
текст_кнопка1[0]="Кнопка 1";
////////////////
int кнопка2[1][4];
string текст_кнопка2[1];
int флаг_кнопка2[1];
кнопка2[0][0]=37; кнопка2[0][1]=48; кнопка2[0][2]=100; кнопка2[0][3]=20;
текст_кнопка2[0]="Кнопка 2";
////////////////
int кнопка3[1][4];
string текст_кнопка3[1];
int флаг_кнопка3[1];
кнопка3[0][0]=37; кнопка3[0][1]=48; кнопка3[0][2]=100; кнопка3[0][3]=20;
текст_кнопка3[0]="Кнопка 3";
////////////////
int кнопка4[1][4];
string текст_кнопка4[1];
int флаг_кнопка4[1];
кнопка4[0][0]=37; кнопка4[0][1]=48; кнопка4[0][2]=100; кнопка4[0][3]=20;
текст_кнопка4[0]="Кнопка 4";
//////////
//Вызываем одновременно 0 3 и 4
createdialog(0, BUTTON, #кнопка0[0][0], #текст_кнопка0[0], #флаг_кнопка0[0]);
showdialog(0, "Диалог0", 158, 234, 176, 158, 1, 1);
//////////
createdialog(1, BUTTON, #кнопка3[0][0], #текст_кнопка3[0], #флаг_кнопка3[0]);
showdialog(1, "Диалог3", 358, 234, 176, 158, 1, 1);
//////////
createdialog(2, BUTTON, #кнопка4[0][0], #текст_кнопка4[0], #флаг_кнопка4[0]);
showdialog(2, "Диалог4", 558, 234, 176, 158, 1, 1);
loop()
{
if (флаг_кнопка3[0]>0)//при нажатие на кнопку среденего диалога он уничтожится и вызовится диалог четвертый
{
флаг_кнопка3[0]=0;
destroydialog(1);
createdialog(1, BUTTON, #кнопка2[0][0], #текст_кнопка2[0], #флаг_кнопка2[0]);
showdialog(1, "Диалог2", 358, 234, 176, 158, 1, 1);
}
sleep(10);//Убрать после теста
}
Все понял, я просто все усложнил =)
В #include оставляем только объявление переменных и там без разницы какой номер диалога.
а когда вызываем указываем номер от 0 до 2 и указываем необходимый номер переменной.
Спасибо =)Надеюсь не я один такой дурак и кому то еще это пригодится. |
|
|
|