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

Страниц (16): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
 

61. Zireael - 20 Ноября, 2019 - 17:16:30 - перейти к сообщению
 Цитата:
Пока первая изменяет текст, то у второй до сих пор взят текст и он старее, чем у первой

Я уже давал пример, где 3 программы связываются с другой, при этом для каждой программы выделен свой массив.
62. 007wan - 21 Ноября, 2019 - 01:30:01 - перейти к сообщению
 Zireael пишет:
Я уже давал пример, где 3 программы связываются с другой, при этом для каждой программы выделен свой массив.
Это я уже знаю, но это не актиально и то, что я писал вышел. Теперь я понял, что лучше сделать по другому.

Проблема была в том, что текст из буфер брался от всех программа и одновременно добавлялся в буфер параллельно, но теперь я знаю как решить эту проблему.
Как сделать такую модель(я покажу как это вижу я):

В буфер главной программы в диалог пишется текст(при запуске программы он именно такой по дефолту):
Для примера (Отобразить)

где Main_Program, Program_1, Program_2 к какой программе относится, имеет значение константы(статическое) и не изменяется, но должно это читаться;
где Editing_Rights - это права на редактирование для данной программы, имеет знрачения 0,1,2.
0 - означает, что редактирование разрешено только для главной программы.
1 - означает, что редактирование разрешено только для первой exe программы.
2 - означает, что редактирование разрешено только для второй exe программы.

Где Function_1 - это значение функции. Имеет так же 2 значения:
0 - функция отключена.
1 - функция включена.

Принцип работы основан не на параллельном редактировании, а на последовательном, что гораздо лучше.
ПРИНЦИП работы:
Как я и говорил при запуске в буфер пишется дефолтный текст, но не такой который выше, это для примера, а вписывается такой текст:
Текст в буфер при запуске главного (Отобразить)

PS: Забыл указать, что в диалоге должны 2 кнопки "Получить окно1" и "Получить окно2".

При нажатии на "Получить окно1".Как мы уже знаем, что редактирование имеет значение "0", значит можно редактировать только главной программе, следовательно она пишет в буфер текст для Program_1 вместо "0" ставит "1", а уже потом для Main_Program вместо "0" ставит "1". Так как у каждой программы(Main_Program, Program_1, Program_2) стоит таймер, определяющий какая цифра стоит в Main_Program, то в зависимости от положения цифры можно будет писать тот или иной текст в буфер, а потом переключать "Управление редактированием для программ"(ту саму переменную, что бы давать управление другой программе).
Если всё правильно сделано должен выйти текст, когда нажали кнопку "Получить окно1"
Текст в буфер при нажатии на кнопку "Получить окно1" (Отобразить)

(Добавление)
Простым языком: буфер изменяется последовательно, последовательно от каждой программы.
(Добавление)
Парсинг не исключен.
(Добавление)
Хотел дополнить, что в начале запуска Main_Program не просто так в значении 0, а будет это до тех пор, пока кнопка не будет нажата "Получить окно1" или втрая, а уже потом изменит на 1...2...и снова 0.
63. 007wan - 21 Ноября, 2019 - 04:14:55 - перейти к сообщению
Можно, пожалуйста реализовать как я вижу это? Просто с парсингом проблемы, да и многие наверное уже подумают, что вообще не только с парсингом, раз уже 3 года изучаю : )
64. 007wan - 21 Ноября, 2019 - 07:02:53 - перейти к сообщению
Что не так? Хочу в буфер диалога записать текст этот.
CODE:
char Text_Butffer[255];

string rn=formatic(13)+formatic(10);
Text_Butffer[0] = "main_prog|0;"+rn+"prog1|0;"+rn+"prog2|0;";
writebuffer(#Text_Butffer[0], 255, Main_Window);

(Добавление)
Ну пожалуйста, просто в теме где описание функций там старые, а мне нужно пример по компактнее и без этих, когда в один байт записывают один символ
(Добавление)
Просто там не современные примеры.
(Добавление)
По моей логике
должно работать:

CODE:
string Text_Buffer;//текст
char Buffer3;//буфер
for (int l=0; l<sizearray(Text_Tab); l++)
{
Text_Buffer = Text_Buffer+Text_Tab[l]+" Bot|0;"+formatic(13)+formatic(10);//скомпилировали текст (мой)
}
strcpy(#Buffer3[0], Text_Buffer);//копируем в Buffer3 текст Text_Buffer
writebuffer(#Butffer3[0], 255, Main_Window);//отправляем
messagebox(Text_Buffer);

(Добавление)
Всё работает! забыл у char добавить массив размера
65. nmf234 - 21 Ноября, 2019 - 15:42:18 - перейти к сообщению
доброго! Ранее я писал о том, что меседжбоксы появляются позади хрома, а нужно поверх. Я заметил вот что: если запускать код через редактор то этой проблемы нет, но я собрал и использую exe, и тут то эта проблема и появляется Огорчение (несколько раз пересобирал, код и exe идентичны).
На всякий, прикрепил "рабочую зону" бота. он поочередно выполняет код то во вкладке слева, то справа.
в том числе и диалог (showdialog (0, "Диалог", 555, 250, 266, 199, 1, 1) тоже появляется позади.
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
66. 007wan - 22 Ноября, 2019 - 04:10:53 - перейти к сообщению
Добавляется в буфер текст с символами formatic(10) +( 13), а он всеравно в строчку записывается, как перенести строку в буфере и что бы читал из буфера так как задам текст
67. Zireael - 22 Ноября, 2019 - 04:19:27 - перейти к сообщению
 Цитата:
что бы читал из буфера так как задам текст

Что записано, то и читает.
CODE:
char c[100];
strcpy(#c[0], "123"+formatic(13)+formatic(10)+"456"); // строка
messagebox(format(#c[0]));

writebuffer(#c[0], size(#c[0])); // записали в буфер
sleep(100);

char c2[100];
readbuffer(#c2[0], 100); // прочитали
messagebox(format(#c2[0]));
68. Dantes3000 - 22 Ноября, 2019 - 04:19:40 - перейти к сообщению
007wan , наверно потому что надо записывать formatic(13) +( 10)?
69. 007wan - 22 Ноября, 2019 - 04:28:50 - перейти к сообщению
 Zireael пишет:
 Цитата:
что бы читал из буфера так как задам текст

Что записано, то и читает.
CODE:
char c[100];
strcpy(#c[0], "123"+formatic(13)+formatic(10)+"456"); // строка
messagebox(format(#c[0]));

writebuffer(#c[0], size(#c[0])); // записали в буфер
sleep(100);

char c2[100];
readbuffer(#c2[0], 100); // прочитали
messagebox(format(#c2[0]));
А ressettextout выводит строчкой.
(Добавление)
 Dantes3000 пишет:
007wan , наверно потому что надо записывать formatic(13) +( 10)?
Сократил, а так там на пару символов более)
70. Zireael - 22 Ноября, 2019 - 04:36:21 - перейти к сообщению
 Цитата:
А ressettextout выводит строчкой.

ressettextout сбрасывает текст, а не выводит.
textout выводит текст в одну строку.

Powered by ExBB FM 1.0 Final