Кибор » Кибор - Интегрированная среда разработки ботов » Тестирование Кибор » Новый Визуальный редактор

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

71. ivantu - 22 Апреля, 2021 - 10:41:21 - перейти к сообщению
 Kibor пишет:
До того не дошли руки. Есть идеи как удобно сделать и минимизировать движения.

К сожалению мой уровень подготовки не позволит Вам что то подсказать стоящее, может ребята с форума кто то откликнуться.
72. Kibor - 22 Апреля, 2021 - 12:39:21 - перейти к сообщению
Я уже кое что придумал.. Посмотрю как будет..
(Добавление)
Обновил архив.
Сделал сохранение и открытие созданного диалога.

Меню правой кнопки мыши - действия.

Формат файла тот же что и файлы шаблонов.
Для того что бы редактировать какой то шаблон, необходимо открыть его.

Кнопка Редактор [INTERFACE]

На открывшемся диалоге правая кнопка мыши.
В меню Действия - Открыть.

Выбрать любой из шаблонов в папке templates

Будет прочтен выбранный файл и с него возьмется блок [INTERFACE], в соответствие с которым в редакторе диалогов создадутся все контролы для редактирования.

После редактирования можно сохранить под тем же именем или под другим.

При сохранение все блоки будут сохранены как были. А блок [INTERFACE] с изменениями.
(Добавление)
Для корректного выравнивания, координаты контролов и их размеры должны быть кратны 4.
(Добавление)
По поводу сортировки контролов при создание их в виз редакторе.

В папке templates лежит файл FindImage.txt в котором контролы без сортировки.

CODE:
[INTERFACE]
DIALOG, "Поиск изображения", 499, 139;
BUTTON_OK, "Принять", 284, 88, 100, 20;
BUTTON_CANCEL, "Закрыть", 388, 88, 100, 20;
STATIC, "Путь к файлу", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, string Path;
BUTTON_FILE, "Путь к файлу", 396, 8, 92, 20, Path;
STATIC, "Сколько искать", 8, 32, 100, 20;
EDIT, 116, 32, 52, 20, int Kol;
COMBO, "Мышь клик" "Мышь нажать" "Мышь отпустить", 172, 32, 220, 80, int M;
STATIC, "Количество", 8, 56, 100, 20;
EDIT, 116, 56, 52, 20, int K;
STATIC, "X", 176, 56, 24, 20;
STATIC, "Y", 288, 56, 24, 20;
EDIT, 208, 56, 72, 20, int X;
EDIT, 320, 56, 72, 20, int Y;
[END]


После открытия его в виз редакторе и сохранение этот блок имеет вид
CODE:
[INTERFACE]
DIALOG, "Поиск изображения", 499, 139;
STATIC, "Путь к файлу", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, string Path;
BUTTON_FILE, "Путь к файлу", 396, 8, 92, 20, Path;
STATIC, "Сколько искать", 8, 32, 100, 20;
EDIT, 116, 32, 52, 20, int Kol;
COMBO, "Мышь клик""Мышь нажать""Мышь отпустить", 172, 32, 220, 80, int M;
STATIC, "Количество", 8, 56, 100, 20;
EDIT, 116, 56, 52, 20, int K;
STATIC, "X", 176, 56, 24, 20;
EDIT, 208, 56, 72, 20, int X;
STATIC, "Y", 288, 56, 24, 20;
EDIT, 320, 56, 72, 20, int Y;
BUTTON_OK, "Принять", 284, 88, 100, 20;
BUTTON_CANCEL, "Закрыть", 388, 88, 100, 20;
[END]


что намного понятнее что к чему относится и за чем идет.
73. Kibor - 22 Апреля, 2021 - 15:35:54 - перейти к сообщению
Обновил.
При открытие программа сама делает позиции и размеры кратными 4. Если они не были такими.
74. Nikanr - 22 Апреля, 2021 - 16:34:31 - перейти к сообщению
Перекачал редактор, нажал открыть и тут такое: Тык. Напомните что почистить нужно)
75. Zireael - 22 Апреля, 2021 - 17:49:17 - перейти к сообщению
 Цитата:
Напомните что почистить нужно)

Удалить кеш загрузок браузера или скачать архив с другого браузера.
76. Kibor - 23 Апреля, 2021 - 03:18:49 - перейти к сообщению
Обновил по мелочам.
Сделал что COMBO не мешает выбору объектов которые находятся в зоне его раскрытия.
Сделал список вместо edita в свойствах контролов.
Можно выбрать
CODE:
int
double
string
char
win

Это не означает что код которые будет генерировать виз редактор может содержать только такой тип переменных.
В редакторе диалогов эти типы означают как будет вести себя редактор на ввод в поле.
Он может сообщать о ошибке, если пользователь ввел не то что ожидалось.

int
double
ждет ввода числа или имени переменной

string
char
ждет строки в "" или символа в '' или имени переменной
77. Kibor - 24 Апреля, 2021 - 10:04:43 - перейти к сообщению
Обновил архив.
В нем шаблон блока FindHeapcolor

Пример как запрограммировать блок на генератор такого кода для использования функции findheapcolor

Требуется сгенерировать такой код, в котором есть два разных блока FindHeapcolor
CODE:
int Color0[2] = {35356, 255};
int Kol0[2] = {2, 2};

int Color1[3] = {678, 232, 0};
int Kol1[3] = {1, 3, 5};

int X, Y;


if (FindHeapcolor(#Color0[0], #Kol0[0], 2, 2, #X, #Y)>0)
{
messagebox ("есть 0");
}

if (FindHeapcolor(#Color1[0], #Kol1[0], 3, 3, #X, #Y)>0)
{
messagebox ("есть 1");
}

function FindHeapcolor(int #col, int #kol, int k_col, int k_kol, int #x, int #y)
{
return findheapcolor(1, #col[0], #kol[0], k_col, k_kol, #x, #y, 15, 15, 50, 50, 0, 0, 1000, 1000, -1);
}


Шаблон блока FindHeapcolor
CODE:
[ESCAPE_CHAR]
^
[END]

[INTERFACE]
DIALOG, "Поиск findheapcolor", 408, 119;
STATIC, "Цвета", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, int D_Color;
STATIC, "Количества", 8, 32, 100, 20;
EDIT, 116, 32, 276, 20, int D_Kol;
BUTTON_OK, "Принять", 180, 64, 100, 20;
BUTTON_CANCEL, "Закрыть", 292, 64, 100, 20;
[END]


[ASSOC_NUMBER]
D_Color, D_Kol;
[END]

[ASSOC_VAR]
D_Color = 0, 5;
D_Kol = 2, 2;

V_color = #Color~*~;
V_kol = #Kol~*~;

V_k_color = ~GET(amtelement(~D_Color~))~;
V_k_kol = ~GET(amtelement(~D_Kol~))~;

V_X = #X;
V_Y = #Y;
[END]

[GLOBAL_VAR]
int Color~*~[~GET(amtelement(~D_Color~))~] = {~D_Color~};
int Kol~*~[~GET(amtelement(~D_Kol~))~] = {~D_Kol~};
int X, Y;
[END]




[FUNCTION_BODY]
function (int #col, int #kol, int k_col, int k_kol, int x#, int #y)
{
return findheapcolor(1, #col[0], #kol[0], k_col, k_kol, #x, #y, 15, 15, 50, 50, 0, 0, 1000, 1000, -1);
}
[END]

[FUNCTION_CALL]
(V_color[0], V_kol[0], V_k_color, V_k_kol, V_X, V_Y)
[END]


[FUNCTION_LOGIC]
>0
[END]


=========================

~GET(amtelement(~D_Color~))~

Функция GET с параметром amtelement возвращает количество элементов, разделенных запятыми.
В D_Color содержится тест с поля настроек диалогового окна.
К примеру: 0, 5

После преобразования ~GET(amtelement(~D_Color~))~ станет ~GET(amtelement(0, 5))~
Затем ~GET(amtelement(0, 5))~ преобразуется в 2.
78. Kibor - 24 Апреля, 2021 - 12:14:59 - перейти к сообщению
Пример как вызывать WinApi функции. Или функции Кибор без блока FUNCTION_BODY

external(INT, "MessageBoxA", "MessageBoxA", "User32.dll"); надо прописывать в блоке GLOBAL_SINGLE_CODE. Он предназначен для
 Цитата:
#define
#include
external
и глобального кода, который не меняется.

Проверки GLOBAL_SINGLE_CODE блока не позволяют повторный вызов любой из этих директив и функций другим блоком, даже при не одинаковом описание.
К примеру
#define WM_COMMAND 273
и
#define WM_COMMAND 0x111
будет считаться одинаковым и дублирования не будет.

Так же как и
external(INT, "MessageBoxA", "MessageBoxA", "user32.dll");
и
external(INT, "MessageBoxA", "MessageBoxA", "USER32.dll");
не будет продублировано.
Но он пока не выводится и поэтому прописано в GLOBAL_REPEAT_CODE, который предназначен для динамичного глобального кода, который тоже не дублируется будучи индентичным.

Блок должен называться MessageBoxA
CODE:
[INTERFACE]
DIALOG, "MessageBox", 405, 111;
STATIC, "Заголовок", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, string Zag;
STATIC, "Текст", 8, 32, 100, 20;
EDIT, 116, 32, 276, 20, string Text;
BUTTON_OK, "Принять", 184, 60, 100, 20;
BUTTON_CANCEL, "Закрыть", 292, 60, 100, 20;
[END]


[ASSOC_VAR]
N1 = 0;
Zag ="aa";
Text = "bbb";
N2 = 0;
[END]


[GLOBAL_REPEAT_CODE]
external(INT, "MessageBoxA", "MessageBoxA", "User32.dll");
[END]


[FUNCTION_CALL]
(N1, Zag, Text, N2)
[END]

79. Zireael - 24 Апреля, 2021 - 14:46:27 - перейти к сообщению
 Цитата:
EDIT - Однострочный текст. Имеет переменную. Может принимать тип string, int, double, char, win, или переменную любого типа.

Для string нет проверки что введённый текст в кавычках.
Хорошо бы добавлять кавычки в генерируемый код, если они отсутствуют.
80. Kibor - 24 Апреля, 2021 - 22:49:48 - перейти к сообщению
 Zireael пишет:
Для string нет проверки что введённый текст в кавычках.

И не должно быть.
Так как там может ожидаться имя переменной.
Проверка для string идет если забыта одна из кавычек. Если их нет, это может быть переменная. А ее нельзя брать в кавычки.

Powered by ExBB FM 1.0 Final