Kibor |
Отправлено: 14 Мая, 2021 - 22:16:59
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Обновил.
Добавил в создание интерфейса EDIT_CODE
Его отличие от EDIT_MULTILINE в том, что полученный текст не будет находиться в кавычках. Использовать для генерирования частей кода, переменных и тд.
Сравнительное описание:
Цитата: EDIT_MULTILINE - создает поле для ввода многострочного текста. К нему надо указать переменную, в которую будет записан введенный текст после нажатия кнопки BUTTON_OK.
Может принимать только текст. Текст в кавычки брать не надо, но при использование данного текста он будет находится в кавычках. Использовать для инициализации переменных и тд.
EDIT_CODE - создает поле для ввода многострочного текста. К нему надо указать переменную, в которую будет записан введенный текст после нажатия кнопки BUTTON_OK.
Может принимать любые текстовые данные. Текст в кавычки брать не надо, и при использование данного текста он не будет находится в кавычках. Использовать для вставки частей кода. Для блоков кода, объявления переменных и тд.
Добавил шаблон блока Start
При наличие данного шаблон (с таким именем), его кнопка будет располагаться в самом верху. Начало работы необходимо вести с блока созданного этой кнопкой.
Данный блок можно создать только первым и в единственном числе. После этого она становится не активной и надо выбрать другую кнопку.
Связи к блоку Start вести нельзя.
При отсутствие данного шаблона работа начинается с первого созданного блока.
В блоке Start можно объявлять глобальный код и переменные.
Пример шаблона блока Start, который имеет поле EDIT_CODE и позволяет объявлять глобальные переменные через раздел [GLOBAL_REPEAT_CODE]:
CODE:[APPEARANCE]
COLOR = 128, 50, 50;
SIZE_X = 8;
SIZE_Y =6;
[END]
[INTERFACE]
DIALOG, "Старт", 283, 324;
STATIC, "Глобальный код и переменные", 52, 4, 168, 20;
EDIT_CODE, 4, 28, 268, 244, string Vars;
BUTTON_OK, "Принять", 64, 276, 100, 20;
BUTTON_CANCEL, "Закрыть", 172, 276, 100, 20;
[END]
[ASSOC_VAR]
Vars =;
[END]
[GLOBAL_REPEAT_CODE]
~Vars~
[END]
Это пример как указать значение переменной Vars по умолчанию:
[ASSOC_VAR]
Vars =int~%32~VAR_KIB~%59~;
[END]
Тут по умолчанию при открытие блока Start будет объявленна переменная
Пробелы и точку с запятой в тексте надо заменять на Замену с помощью ~%...~
=======================
Устранил баги при создание кода с схемы, в которой были пустые групповые блоки. |
|
|
Kibor |
Отправлено: 15 Мая, 2021 - 08:29:31
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Обновил.
Добавил раздел [LOGIC]
Данный раздел отвечает за то, можно ли будет от Блока вести красную линию.
Раздел [LOGIC] не совместим с разделом [FUNCTION_LOGIC]
Если указан раздел [FUNCTION_LOGIC] , формирутся код:
Цитата: if ((то что в блоке [CALL])(условие)) goto ...;
goto ...;
От такого блока можно по умолчанию вести красный переход.
Если указан раздел [LOGIC], а в нем есть параметр:
Цитата: [LOGIC]
FALSE=1
[END]
формируется код
Цитата: (то что в блоке [CALL]) goto ...;
goto ...;
Данный раздел позволяет генерировать оператор if
Пример шаблона оператора if
CODE:[INTERFACE]
DIALOG, "Диалог", 395, 82;
STATIC, "Условие", 8, 4, 48, 20;
EDIT, 60, 4, 324, 20, unknown Cond;
BUTTON_OK, "Принять", 172, 32, 100, 20;
BUTTON_CANCEL, "Закрыть", 284, 32, 100, 20;
[END]
[APPEARANCE]
COLOR = 0, 0, 0;
SIZE_X = 12;
SIZE_Y =6;
[END]
[ASSOC_VAR]
Cond = 1<5;
[END]
[CALL]
(Cond)
[END]
[LOGIC]
FALSE=1
[END]
======================================================
Пример использования Блока if
CODE:#define NULL 0
win win0 = window("Калькулятор","CalcFrame",-1);
int Proc;
external(INT, "MessageBoxA", "MessageBoxA", "user32.dll");
Proc=OpenProcess(#win0);
if(Proc!=-1) goto KIB_3;
goto KIB_4;
KIB_3: MessageBoxA(NULL, "Процесс открыт", "Заголовок", NULL);
goto KIB_Exit;
KIB_4: MessageBoxA(NULL, "Процесс не найден", "Заголовок", NULL);
goto KIB_Exit;
KIB_Exit:;
function OpenProcess(win #w)
{
return openprocess(w);
} |
|
|
Kibor |
Отправлено: 15 Мая, 2021 - 10:30:56
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Пример шаблона Блока КОД
Блок Code позволяет вставить в место вызова любой программный код.
Можно использовать для отдельных кусков кода, которые надо вставить в схему, вызова функций и тд.
При создание интерфейса используется EDIT_CODE, который не берет текст в кавычки.
Для вставки в код используется раздел [CALL]
Если в разделе [CALL] отсутствуют (), то считаться что все надо вставить как есть. Иначе идет разбор на параметры, так как там ожидается вызов функции.
CODE:[APPEARANCE]
COLOR = 0, 50, 50;
SIZE_X = 8;
SIZE_Y =6;
[END]
[INTERFACE]
DIALOG, "Блок кода", 283, 324;
STATIC, "Код", 128, 4, 24, 20;
EDIT_CODE, 4, 28, 268, 244, string Code;
BUTTON_OK, "Принять", 64, 276, 100, 20;
BUTTON_CANCEL, "Закрыть", 172, 276, 100, 20;
[END]
[ASSOC_VAR]
Code =;
[END]
[CALL]
Code
[END]
|
|
|
Zireael |
Отправлено: 15 Мая, 2021 - 15:33:11
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как закрыть редактор диалогов
Ещё раз нажать на кнопку, которой он открывается.
Цитата: Как сохранять и открывать по указанному пути
Пока не всё сделано.(Отредактировано автором: 15 Мая, 2021 - 15:33:32) |
|
|
konctantin777 |
Отправлено: 15 Мая, 2021 - 16:40:08
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Kibor пишет: konctantin777 пишет: Нарисовал несколько блоков старт- не удаляются лишние....
Как так получилось? Он должен создать только один старт.
Нажал на блок. Потом хоть сколько кликай... |
|
|
konctantin777 |
Отправлено: 15 Мая, 2021 - 16:50:39
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Kibor пишет: Да.. Есть такое.. Исправлю.
В старом редактор, случайное удаление "старт" (бывал такой баг)= неисправимый касяк. Лишь бы в любой стадии давал поставить и давал случайные удалить...
(Добавление)
Zireael пишет: Как сохранять и открывать по указанному пути
Пока не всё сделано.
По идее, сначала сделать, чтобы можно было хоть как то, но создавать реальные проекты= быстрее теститься будет...(Отредактировано автором: 15 Мая, 2021 - 16:53:43) |
|
|
|