Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (18): « 1 2 3 [4] 5 6 7 8 9 » В конец    

> Без описания
Kibor
Отправлено: 08 Апреля, 2021 - 19:39:15
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Обновил архив. Была описка в коде, которая блокировала перемещения по одной оси.
 
 Top
ivantu
Отправлено: 09 Апреля, 2021 - 08:17:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Жаль что при уменьшения масштаба теряется производительность, при чем это сильно заметно, нужно уже сейчас это исправлять, т.к. дальше тяжелее будет.
 
 Top
Kibor
Отправлено: 09 Апреля, 2021 - 09:15:16
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 ivantu пишет:
Жаль что при уменьшения масштаба теряется производительность, при чем это сильно заметно, нужно уже сейчас это исправлять, т.к. дальше тяжелее будет.

Ну там вполне понятная причина.
Обновил архив. Причину убрал.
В правом верхнем углу информация сколько секунд затрачено на операцию.
Операция - это от момента отпускания кнопки до окончания прорисовки обновленной графики.
 
 Top
Kibor
Отправлено: 10 Апреля, 2021 - 21:19:36
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Приступил к реализации принципа работы редактора.

Протестировать можно нажав на кнопку ТЕСТ в правом верхнем углу. В папке с редактором лежит файл Блок.txt, который можно редактировать.

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

Созданные таким образом блоки будут содержать в себе весь функционал, который присутствует в старом редакторе.
То есть диалоговое окно настроек, тело функции, вызов функции, глобальный код, возвращаемые значения, выбор переходов Истина Ложь.
Все это можно будет создавать и корректировать созданные блоки по своему усмотрению.

По сути сам редактор будет просто универсальным движком, снабдив который соответствующей библиотекой блоков, можно будет создавать код на любом языке.

Файл созданного блока выглядит таким образом:
В нем содержится вся нужная информация от диалогового окна настроек (какой появляется при выборе свойства блока в старом редакторе), до кода, который он будет генерировать.

Пояснение:
BUTTON_CANCEL - Закрывает окно настроек не применив изменения.
BUTTON_OK - Закрывает окно настроек применив изменения.
Данные кнопки не имеют своих переменных и могут быть созданы только по одной.

Далее могут быть созданы в нужном количестве:
STATIC - Статичный текст. Не имеет переменной.
EDIT - Однострочный текст. Имеет переменную. Может принимать тип string, int, double, char, win, или переменную любого типа.
EDIT_MULTILINE - Многострочный текст. Может принимать тип string.
CHECK - Галка. Имеет переменную типа int, которая соответствует 0 или 1.
COMBO - Выпадающий список. Может возвращать string (текст пункта) или номер пункта в зависимости от указанного типа переменной. string или int.
BUTTON_FILE - Кнопка вызывающая диалоговое окно для выбора файла. Не имеет своей переменной. Указывается переменная типа string EDIT или EDIT_MULTILINE. После выбора файла в соответствующее поле к которому привязана переменная будет введен выбранный путь.
BUTTON_PATH - Кнопка вызывающая диалоговое окно для выбора пути. Все аналогично BUTTON_FILE.

CODE:
[INTERFACE]
DIALOG, "Диалог настроек", 577, 452;
BUTTON_OK, "Принять", 365, 400, 100, 25;
BUTTON_CANCEL, "Закрыть", 470, 400, 100, 25;
STATIC, "Простой Edit", 10, 10, 90, 18;
STATIC, "Мультитекст", 10, 40, 90, 18;
EDIT, 105, 8, 120, 18, string Edit_S;
EDIT, 255, 80, 120, 18, int Edit_I;
EDIT, 255, 110, 120, 18, double Edit_D;
EDIT_MULTILINE, 105, 38, 120, 108, string Edit_Sm;
CHECK, "Включить опцию", 10, 155, 105, 18, int Check;
COMBO, "Выбор строки 1" "Выбор строки 2" "Выбор строки 3", 10, 180, 212, 200, string Combo_S;
STATIC, "Вернет текст строки", 250, 180, 190, 18;
COMBO, "Выбор числа 1" "Выбор числа 2" "Выбор числа 3", 10, 250, 212, 200, int Combo_I;
STATIC, "Вернет номер строки", 250, 250, 190, 18;
BUTTON_FILE, "Выбрать файл", 255, 10, 200, 25, Edit_S;
BUTTON_PATH, "Выбрать путь", 255, 50, 200, 25, Edit_Sm;
[END]

[GLOBAL]
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
int Global_Var;
[END]

[FUNCTION_BODY]
function Fun(string Edit_S, int Edit_I, int Check, string Combo_S)
{
if (Combo_I==1)
{
if (Edit_S==Combo_S)return 1;
}
return 0;
}
[END]

[FUNCTION_CALL]
Fun("C:\", 52, 0, "Выбор строки 2")
[END]

[FUNCTION_RETURN]
ON;
TRUE, 1;
FALSE, 0;
[END]


Диалоговые окна свойств блоком являются не модальными и могут быть одновременно открыты и использованы для разных блоков схемы.
 
 Top
Kibor
Отправлено: 11 Апреля, 2021 - 21:42:45
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Обновил архив.

Доработал создание своих боков. Конкретнее механизм взаимодействия с созданным диалоговым окном.

В архиве код созданного блока:
CODE:
[ESCAPE_CHAR]
^
[END]

[INTERFACE]
DIALOG, "Диалог настроек", 577, 452;
BUTTON_OK, "Принять", 365, 400, 100, 25;
BUTTON_CANCEL, "Закрыть", 470, 400, 100, 25;
STATIC, "Простой Edit", 10, 10, 90, 18;
STATIC, "Мультитекст", 10, 40, 90, 18;
EDIT, 105, 8, 120, 18, string Edit_S;
EDIT, 255, 80, 120, 18, int #Edit_I;
EDIT, 255, 110, 120, 18, double Edit_D;
EDIT_MULTILINE, 105, 38, 120, 108, string Edit_Sm;
CHECK, "Включить опцию", 10, 155, 105, 18, int Check;
COMBO, "Выбор строки 1" "Выбор строки 2" "Выбор строки 3", 10, 180, 212, 200, string Combo_S;
STATIC, "Вернет текст строки", 250, 180, 190, 18;
COMBO, "Выбор числа 1" "Выбор числа 2" "Выбор числа 3", 10, 250, 212, 200, int Combo_I;
STATIC, "Вернет номер строки", 250, 250, 190, 18;
BUTTON_FILE, "Выбрать файл", 255, 10, 200, 25, Edit_S;
BUTTON_PATH, "Выбрать путь", 255, 50, 200, 25, Edit_Sm;
[END]

[GLOBAL]
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
int Global_Var;
[END]

[FUNCTION_BODY]
function Fun(string Edit_S, int #Edit_I, double Edit_D, string Edit_Sm, int Check, string Combo_S, int Combo_I)
{
string a="^"[END]";
if (Combo_I==1)
{
if (Edit_S==Combo_S)return 1;
}
return 0;
}
[END]

[FUNCTION_CALL]
Fun("C:\boltalka\Log.txt", #Yk_I, 0.25, "Строка1^r^nСтрока 2", 1, "Выбор строки 2", 2);
[END]

[FUNCTION_RETURN]
ON;
TRUE, 1;
FALSE, 0;
[END]


[ESCAPE_CHAR] отвечает за установку экранирующего символа. По умолчанию им является ^. Если его надо изменить, то этот блок указывается вверху.


CODE:
[FUNCTION_CALL]
Fun("C:\boltalka\Log.txt", #Yk_I, 0.25, "Строка1^r^nСтрока 2", 1, "Выбор строки 2", 2);
[END]

Указывают параметры по умолчанию, с какими будет открываться диалоговое окно настроек.
Параметры заполняются в соответствие с параметрами
CODE:
[FUNCTION_BODY]
function Fun(string Edit_S, int #Edit_I, double Edit_D, string Edit_Sm, int Check, string Combo_S, int Combo_I)
{
.........

и устанавливаются значения контролов в соответствие присвоенными им переменными.

При нажатие Принять, все заново введенные параметры считываются и заполняются соответствующие переменные, которые будут записаны в функцию при ее вставке в код.
 
 Top
Zireael
Отправлено: 12 Апреля, 2021 - 00:57:44
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
BUTTON_CANSEL

BUTTON_CANСEL
 Цитата:
BUTTON_FILE

Лучше вызывать нормальное окно для выбора файла, а не маленькое окошечко, в котором отображается 5 строчек.
CODE:
#define MAX_PATH 260
external(INT, "GetOpenFileName", "GetOpenFileNameA", "Comdlg32.dll");
external(INT, "sprintf_s", "sprintf_s", "msvcrt.dll");

new char path[MAX_PATH]; // сюда путь к файлу получим
path[0]=0;
char ofn[88]; // OPENFILENAMEA structure
initialarray(#ofn[0], 0);

char strFilter[99]; // формат файла
sprintf_s(address(#strFilter[0]), sizearray(strFilter), "%s%c%s%c%s%c%s%c%c",
"Точечный рисунок", 0, "*.bmp", 0,
"Текстовый файл", 0, "*.txt", 0, 0);

new char strInitialDir[MAX_PATH];
strcpy(#strInitialDir[0], pathfolder()); // начальный каталог

char strTitle[99];
strcpy(#strTitle[0], "Открыть файл"); // заголовок диалога

writeaddress(sizearray(ofn), address(#ofn[0]));
writeaddress(address(#strFilter[0]), address(#ofn[12])); // тип файла
writeaddress(address(#path[0]), address(#ofn[28])); // путь к файлу
writeaddress(sizearray(path), address(#ofn[32])); // размер буфера
writeaddress(address(#strInitialDir[0]), address(#ofn[44])); // начальный каталог
writeaddress(address(#strTitle[0]), address(#ofn[48])); // заголовок диалога

int x=GetOpenFileName(address(#ofn[0]));
if(x)messagebox(format(#path[0]));
else messagebox("Ничего не выбрано");
 
 Top
Kibor
Отправлено: 12 Апреля, 2021 - 01:06:18
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Zireael пишет:
Цитата:
BUTTON_CANSEL

BUTTON_CANСEL

Да уж......)
Обновил архив и исправил примеры.
 Zireael пишет:
Лучше вызывать нормальное окно для выбора файла, а не маленькое окошечко, в котором отображается 5 строчек.

Согласен.
 
 Top
ivantu
Отправлено: 12 Апреля, 2021 - 08:38:42
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




кнопка Тест перестала вызывать Диалог.
 
 Top
Kibor
Отправлено: 12 Апреля, 2021 - 08:53:39
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Обновил.
А что показывает кнопка правее кнопок масштаба?
 
 Top
ivantu
Отправлено: 12 Апреля, 2021 - 10:06:02
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




 Kibor пишет:
Обновил.

Кнопка "Тест" так и не работает

 Kibor пишет:
А что показывает кнопка правее кнопок масштаба?

 
 Top
Страниц (18): « 1 2 3 [4] 5 6 7 8 9 » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Тестирование Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by