Greaty |
Отправлено: 12 Января, 2019 - 12:17:28
|
Наблюдатель
Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2016
Репутация: 0
|
Помогите разобраться
Есть код вызывает 2 окна логов, как объеденить это в 1 окно
CODE:
string s="", PR, rn=formatic(13)+formatic(10);
int x=0;
int max_string=10; // максимальное количество строк лога, лишние будут удалены начиная с начала
int a=23;
int b=2;
int c=3;
int d=223;
int pos_size_31[8][4];
string text_31[8];
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=10; pos_size_static0[0][1]=10; pos_size_static0[0][2]=300; pos_size_static0[0][3]=200;
text_static0[0]="";
pos_size_31[0][0]=320; pos_size_31[0][1]=20; pos_size_31[0][2]=100; pos_size_31[0][3]=20;
pos_size_31[1][0]=320; pos_size_31[1][1]=50; pos_size_31[1][2]=100; pos_size_31[1][3]=20;
pos_size_31[2][0]=320; pos_size_31[2][1]=80; pos_size_31[2][2]=100; pos_size_31[2][3]=20;
pos_size_31[3][0]=320; pos_size_31[3][1]=110; pos_size_31[3][2]=133; pos_size_31[3][3]=20;
pos_size_31[4][0]=460; pos_size_31[4][1]=20; pos_size_31[4][2]=27; pos_size_31[4][3]=20;
pos_size_31[5][0]=460; pos_size_31[5][1]=50; pos_size_31[5][2]=27; pos_size_31[5][3]=20;
pos_size_31[6][0]=460; pos_size_31[6][1]=80; pos_size_31[6][2]=27; pos_size_31[6][3]=20;
pos_size_31[7][0]=460; pos_size_31[7][1]=110; pos_size_31[7][2]=27; pos_size_31[7][3]=20;
text_31[0]="text a"; text_31[1]="text b"; text_31[2]="text c"; text_31[3]="text d"; text_31[4]=+format(a); text_31[5]=+format(b); text_31[6]=+format(c); text_31[7]=+format(d);
//////////
createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0]);
createdialog(1, STATIC, #pos_size_31[0][0], #text_31[0]);
//////////
showdialog(0, "Log", 2, 725, 500, 200, 1, 0);
showdialog(1, "Log2", 502, 725, 500, 200, 1, 0);
//////////
//loop() sleep(10);
starting:;
text_static0[0]=add_string("1111"); sleep(500);
text_static0[0]=add_string("2222 2"); sleep(500);
text_static0[0]=add_string("3333 3 instagram.com"); sleep(500);
text_static0[0]=add_string("111"); sleep(500);
text_static0[0]=add_string("222"); sleep(500);
text_static0[0]=add_string("333"); sleep(500);
text_static0[0]=add_string("444"); sleep(500);
text_static0[0]=add_string("555"); sleep(500);
goto starting;
function add_string(string temp)
{
x++; s=s+temp+rn;
if(x>max_string) // если достигнут максимум строк в логе
{
if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR; // ищем всё что идет после переноса строки
else {if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR;} // обход бага, повторный вызов функции
}
return s;
}
а если изменяю строчку
createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0]);
на
createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0], #pos_size_31[0][0], #text_31[0]);
выдёт ошибку
CODE:
string s="", PR, rn=formatic(13)+formatic(10);
int x=0;
int max_string=10; // максимальное количество строк лога, лишние будут удалены начиная с начала
int a=23;
int b=2;
int c=3;
int d=223;
int pos_size_31[8][4];
string text_31[8];
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=10; pos_size_static0[0][1]=10; pos_size_static0[0][2]=300; pos_size_static0[0][3]=200;
text_static0[0]="";
pos_size_31[0][0]=320; pos_size_31[0][1]=20; pos_size_31[0][2]=100; pos_size_31[0][3]=20;
pos_size_31[1][0]=320; pos_size_31[1][1]=50; pos_size_31[1][2]=100; pos_size_31[1][3]=20;
pos_size_31[2][0]=320; pos_size_31[2][1]=80; pos_size_31[2][2]=100; pos_size_31[2][3]=20;
pos_size_31[3][0]=320; pos_size_31[3][1]=110; pos_size_31[3][2]=133; pos_size_31[3][3]=20;
pos_size_31[4][0]=460; pos_size_31[4][1]=20; pos_size_31[4][2]=27; pos_size_31[4][3]=20;
pos_size_31[5][0]=460; pos_size_31[5][1]=50; pos_size_31[5][2]=27; pos_size_31[5][3]=20;
pos_size_31[6][0]=460; pos_size_31[6][1]=80; pos_size_31[6][2]=27; pos_size_31[6][3]=20;
pos_size_31[7][0]=460; pos_size_31[7][1]=110; pos_size_31[7][2]=27; pos_size_31[7][3]=20;
text_31[0]="text a"; text_31[1]="text b"; text_31[2]="text c"; text_31[3]="text d"; text_31[4]=+format(a); text_31[5]=+format(b); text_31[6]=+format(c); text_31[7]=+format(d);
//////////
createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0], #pos_size_31[0][0], #text_31[0]);
//////////
showdialog(0, "Log", 2, 725, 500, 200, 1, 0);
//showdialog(1, "Log2", 502, 725, 500, 200, 1, 0);
//////////
//loop() sleep(10);
starting:;
text_static0[0]=add_string("1111"); sleep(500);
text_static0[0]=add_string("2222 2"); sleep(500);
text_static0[0]=add_string("3333 3 instagram.com"); sleep(500);
text_static0[0]=add_string("111"); sleep(500);
text_static0[0]=add_string("222"); sleep(500);
text_static0[0]=add_string("333"); sleep(500);
text_static0[0]=add_string("444"); sleep(500);
text_static0[0]=add_string("555"); sleep(500);
goto starting;
function add_string(string temp)
{
x++; s=s+temp+rn;
if(x>max_string) // если достигнут максимум строк в логе
{
if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR; // ищем всё что идет после переноса строки
else {if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR;} // обход бага, повторный вызов функции
}
return s;
}
то выдает ошибку(Отредактировано автором: 12 Января, 2019 - 12:18:43) |
|
|
Greaty |
Отправлено: 12 Января, 2019 - 14:14:47
|
Наблюдатель
Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2016
Репутация: 0
|
Kibor пишет: Создавайте новый диалог и на нем выводите.
не совсем понял, я так и пытаюсь вроде сделать, или вы имеете ввиду что логи по типу чат в одном окне диалога, а логи по типу текст количество в другом,
можно чуть детальнее, ну или как мне мой код переделать
Kibor пишет: findtexttest использовать не рекомендую. Это не документированная функция . Заброшенная .
я взял эту функцию с этой же темы... чем тогда пользоваться??
может я не в ту сторону рою, может подскажете более наглядный способ реализации логов действий(Отредактировано автором: 12 Января, 2019 - 14:17:26) |
|
|
Greaty |
Отправлено: 12 Января, 2019 - 14:20:38
|
Наблюдатель
Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2016
Репутация: 0
|
Kibor пишет: Вы хотите объединить 2 окна в одно.
Для этого надо создать новое окно где все сразу разместить, а не пытаться объединять.
возможно вы не верно поняли мысль, первый код и вызывает 2 окна логов
а мне надо чтобы вызывалось 1 окно в котором бы была информация и первого и второго окна, если я так делаю то ошибка которая как раз и показывается вторым кодом
(Добавление)
если делаю так то понятно создается и выводится 2 окна, в каждом работают свои статики
CODE:createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0]);
createdialog(1, STATIC, #pos_size_31[0][0], #text_31[0]);
showdialog(0, "Log", 2, 725, 500, 200, 1, 0);
showdialog(1, "Log2", 502, 725, 500, 200, 1, 0);
а если все прописываю в 1 статик кодом ниже
CODE:createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0], #pos_size_31[0][0], #text_31[0]);
showdialog(0, "Log", 2, 725, 500, 200, 1, 0);
то выдает ошибку |
|
|
Kibor |
Отправлено: 12 Января, 2019 - 14:31:36
|
Эксперт
Покинул форум
Сообщений всего: 8219
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Все правильно понял.
Надо всю эту инфу выводить в одном окне.
Для этого надо создать 1 окно и там расположить все эти статики.
CODE:
string s="", PR, rn=formatic(13)+formatic(10);
int x=0;
int max_string=10; // максимальное количество строк лога, лишние будут удалены начиная с начала
int a=23;
int b=2;
int c=3;
int d=223;
int pos_size_static0[9][4];
string text_static0[9];
pos_size_static0[0][0]=320; pos_size_static0[0][1]=20; pos_size_static0[0][2]=100; pos_size_static0[0][3]=20;
pos_size_static0[1][0]=320; pos_size_static0[1][1]=50; pos_size_static0[1][2]=100; pos_size_static0[1][3]=20;
pos_size_static0[2][0]=320; pos_size_static0[2][1]=80; pos_size_static0[2][2]=100; pos_size_static0[2][3]=20;
pos_size_static0[3][0]=320; pos_size_static0[3][1]=110; pos_size_static0[3][2]=133; pos_size_static0[3][3]=20;
pos_size_static0[4][0]=460; pos_size_static0[4][1]=20; pos_size_static0[4][2]=27; pos_size_static0[4][3]=20;
pos_size_static0[5][0]=460; pos_size_static0[5][1]=50; pos_size_static0[5][2]=27; pos_size_static0[5][3]=20;
pos_size_static0[6][0]=460; pos_size_static0[6][1]=80; pos_size_static0[6][2]=27; pos_size_static0[6][3]=20;
pos_size_static0[7][0]=460; pos_size_static0[7][1]=110; pos_size_static0[7][2]=27; pos_size_static0[7][3]=20;
pos_size_static0[8][0]=10; pos_size_static0[8][1]=10; pos_size_static0[8][2]=300; pos_size_static0[8][3]=200;
text_static0[0]="text a"; text_static0[1]="text b"; text_static0[2]="text c"; text_static0[3]="text d"; text_static0[4]=+format(a); text_static0[5]=+format(b); text_static0[6]=+format(c); text_static0[7]=+format(d);
text_static0[8]="";
//////////
createdialog(0, STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////
showdialog(0, "Log", 2, 725, 500, 200, 1, 0);
//////////
//loop() sleep(10);
starting:;
text_static0[8]=add_string("1111"); sleep(500);
text_static0[8]=add_string("2222 2"); sleep(500);
text_static0[8]=add_string("3333 3 instagram.com"); sleep(500);
text_static0[8]=add_string("111"); sleep(500);
text_static0[8]=add_string("222"); sleep(500);
text_static0[8]=add_string("333"); sleep(500);
text_static0[8]=add_string("444"); sleep(500);
text_static0[8]=add_string("555"); sleep(500);
goto starting;
function add_string(string temp)
{
x++; s=s+temp+rn;
if(x>max_string) // если достигнут максимум строк в логе
{
if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR; // ищем всё что идет после переноса строки
else {if(findtexttest (#s, #PR, rn, /[RU, EN, SPACE, NUM, SPEC, MARK]+\)==1)s=PR;} // обход бага, повторный вызов функции
}
return s;
}
|
|
|
|