Kibor |
Отправлено: 27 Мая, 2021 - 02:02:04
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Изменил блок Call
Этот блок для вызова созданных нами функций.
Теперь в нем есть поле для ввода имени переменной, в которую запишется возвращаемое с функции значение.
Если поле пустое будет код:
Если ввести имя переменной будет:
CODE:int Rez;
Rez=NameFun();
Тип переменной выбирается в списке COMBO
Шаблон Call
CODE:[INTERFACE]
DIALOG, "Вызов функции", 402, 153;
STATIC, "Вызвать функцию", 4, 4, 96, 20;
EDIT, 104, 4, 152, 20, unknown Name;
STATIC, "Параметры", 4, 28, 64, 20;
EDIT, 72, 28, 320, 20, unknown Par;
STATIC, "Записать возврат в переменную", 4, 52, 176, 20;
EDIT_WRITE_RETURN, 184, 52, 100, 20, unknown Var;
COMBO, "int""double""string""char""win", 292, 52, 100, 80, string Type;
STATIC, "Комментарий", 4, 76, 72, 20;
EDIT, 80, 76, 312, 20, unknown Comment;
BUTTON_OK, "Принять", 184, 104, 100, 20;
BUTTON_CANCEL, "Закрыть", 292, 104, 100, 20;
[END]
[APPEARANCE]
COLOR = 205, 108, 35;
SIZE_X = 12;
SIZE_Y =4;
[END]
[INFO]
>>" ">>Name>>[ENDL]>>Par>>[ENDL]>>Comment
[END]
[ASSOC_VAR]
Name=;
Par=;
Var=;
Type="int";
vType=~GET(regexsearch(~Type~,"(?<=\")(.*)+(?=\")")~;
Comment=;
CALL=~Name~(~Par~)~%59~;
[END]
[GLOBAL_VAR]
~vType~ ~Var~;
[END]
[CALL]
CALL
[END]
|
|
|
Kibor |
Отправлено: 27 Мая, 2021 - 02:59:58
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Кому не хватает блока RESOURCE что бы создавать скрипты которые распаковывают изображения с ресурсов, может пока использовать это:
После блока старт вставить блок кода, в котором прописать
CODE:RESOURCE
{
"C:\Image_0.bmp";
"C:\Image_1.bmp";
}
C:\Image_0.bmp C:\Image_1.bmp пути к используемым изображениям.
Вместо Блока FindImage использовать FindImage_RES
Он генерирует загрузку изображений так:
CODE:unpack("C:\Image_0.bmp", tempfolder()+"Image_0.bmp", 1);
loadimage(#Image0[0][0], tempfolder()+"Image_0.bmp");
Получится код такой
CODE:int Image0[12][10];
int Image1[18][12];
unpack("C:\Image_0.bmp", tempfolder()+"Image_0.bmp", 1);
loadimage(#Image0[0][0], tempfolder()+"Image_0.bmp");
unpack("C:\Image_1.bmp", tempfolder()+"Image_1.bmp", 1);
loadimage(#Image1[0][0], tempfolder()+"Image_1.bmp");
RESOURCE
{
"C:\Image_0.bmp";
"C:\Image_1.bmp";
}
FindImage_RES(0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, #Image0[0][0], 1, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, 1024, 768, 0, 0, -1, 0, 100, 0, 0, "Бездействие", 0, 0, 0);
FindImage_RES(0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, #Image1[0][0], 1, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, 1024, 768, 0, 0, -1, 0, 100, 0, 0, "Бездействие", 0, 0, 0);
Отличие FindImage_RES от FindImage
В раздел [ASSOC_VAR] добавлена переменная
CODE:File=~GET(regexsearch(~Path~, "(?<=\\)(.*?)", 16))~;
В которой будет имя файла с расширением.
Раздел [GLOBAL_REPEAT_CODE] изменен с
CODE:[GLOBAL_REPEAT_CODE]
loadimage(#Image~*~[0][0], ~Path~);
[END]
на
CODE:[GLOBAL_REPEAT_CODE]
unpack(~Path~, tempfolder()+~%34~~File~~%34~, 1);
loadimage (#Image~*~[0][0], tempfolder()+~%34~~File~~%34~);
[END]
(Добавление)
Добавил к шаблонам for loop looptime while
раздел [INFO] для вывода параметров циклов |
|
|
Kibor |
Отправлено: 27 Мая, 2021 - 12:05:43
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Обновил программу и шаблоны.
Переименовал раздел [GLOBAL_SINGLE_CODE] в [GLOBAL_SINGLE_CODE_TOP]
Теперь что бы создать код который имеет блок RESOURCE и функции загрузки
CODE:unpack("C:\Image_0.bmp", tempfolder()+"Image_0.bmp", 1);
loadimage (#Image0[0][0], tempfolder()+"Image_0.bmp");
Надо использовать шаблон FindImage_RES.
Не совместим с шаблоном FindImage
Позже сделаю универсально.
Добавил разделы [REGEXPLACE_CODE] и [GLOBAL_SINGLE_CODE_BOTTOM]
Пояснение ниже.
С их помощью можно генерировать такой код:
Цитата: //Переменные
load_images_RES();
//Основнй код и функции
RESOURCE
{
"C:\s.bmp";
"C:\Image_0.bmp";
}
function load_images_RES()
{
unpack("C:\s.bmp", tempfolder()+"s.bmp", 1);
loadimage (#Image1[0][0], tempfolder()+"s.bmp");
unpack("C:\Image_0.bmp", tempfolder()+"Image_0.bmp", 1);
loadimage (#Image0[0][0], tempfolder()+"Image_0.bmp");
}
Принцип состоит в замене с помощью регулярного выражения.
============================================================================================
[REGEXPLACE_CODE] - в этом блоке прописывается регулярные выражения которые будут выполнены в самом конце генерирования кода.
С помощью них можно произвести замену указанных частей кода на свои.
Синтаксис:
Цитата: Что менять1 = На что менять1 ;
Что менять2 = На что менять2 ;
Пояснение к синтаксису регулярнго выражения в блоке [REGEXPLACE_CODE]:
CODE:"RESOURCE" ~%13~~%10~"\{"~%13~~%10~ = "RESOURCE"~%13~~%10~"{"~%13~~%10~~Path~~%59~~%13~~%10~;
Символы
CODE:=
;
перенос строки
новая строка
если они не в кавычках надо заменять на команды ~%код_символа~
Данное выражение означает заменить
на
где ~Path~ будет заменено на значение переменной Path.
Пример:
Есть сгенерированный код:
Если указать в блоке [REGEXPLACE_CODE] регуоярное выражение:
CODE:[REGEXPLACE_CODE]
"RESOURCE" ~%13~~%10~"\{"~%13~~%10~ = "RESOURCE"~%13~~%10~"{"~%13~~%10~~Path~~%59~~%13~~%10~;
[END]
данный код заменится на
CODE:RESOURCE
{
"C:\Image_0.bmp";
}
[END][/code]
где "C:\Image_0.bmp" значение переменной Path
Еще пример:
При наличие такого кода:
CODE:
RESOURCE
{
}
function load_images_RES()
{
}
Команды
CODE:[REGEXPLACE_CODE]
"function load_images_RES\(\)"~%13~~%10~"\{"~%13~~%10~ = "function load_images_RES()"~%13~~%10~"{"~%13~~%10~"unpack("~Path~", tempfolder()+"~%34~~File~~%34~", 1);"~%13~~%10~;
"function load_images_RES\(\)"~%13~~%10~"\{"~%13~~%10~ = "function load_images_RES()"~%13~~%10~"{"~%13~~%10~"loadimage (#Image"~*~"[0][0], tempfolder()+"~%34~~File~~%34~");"~%13~~%10~;
"RESOURCE" ~%13~~%10~"\{"~%13~~%10~ = "RESOURCE"~%13~~%10~"{"~%13~~%10~~Path~~%59~~%13~~%10~;
[END]
сгенерируют такой код:
CODE:RESOURCE
{
"C:\Image_0.bmp";
}
function load_images_RES()
{
unpack("C:\Image_0.bmp", tempfolder()+"Image_0.bmp", 1);
loadimage (#Image0[0][0], tempfolder()+"Image_0.bmp");
}
Вызов функции load_images_RES()
можно сделать в блоке
CODE:[GLOBAL_REPEAT_CODE]
load_images_RES();
[END]
============================================================================================
[GLOBAL_SINGLE_CODE_BOTTOM] - в этом блоке прописывается глобальный код, вставляемый один раз в самом низу скрипта.
Использовать для создания независимых блоков кода.
К примеру такой код блока [GLOBAL_SINGLE_CODE_BOTTOM]
CODE:[GLOBAL_SINGLE_CODE_BOTTOM]
RESOURCE
{
}
[END]
вставит в самом низу код:
Затем с помощью команд блока [REGEXPLACE_CODE] можно вставлять в этот блок кода свои строчки кода.
Данный код должен быть закончен по своему смыслу выполнения.
============================================================================================
(Добавление)
Что бы изменить проект который создан на FindImage на проект на FindImage_RES
достаточно открыть в блокноте сохранение и заменить
FindImage на FindImage_RES
при загрузке согласиться добавить параметр и пересохранить. |
|
|
|