andrestudio писал(а):
можно через SDKSDK.AsText получает исходники схемы только с того поля на котором был запущен ScriptEvents: События скрипта.
И вот казалось бы, достаточно перед открытием окна редактора свойства, поставить на поле HiAsm такой скрипт:
Add(SDKBtn,3740835,329,91)
{
Script=#16:function Click()|46: ind1 = SDK.Add("hcCommanHandler",7,77)|42: ind2 = SDK.Add("hcIf_else",49,77) |43: ind3 = SDK.Add("hcClipboard",91,77)|41: ind4 = SDK.Add("hcStrList",91,21)|1: |27: sha = SDK.AsText ()|46: SDK.SetProp (ind2,"Op2","1234567890") |41: SDK.SetProp (ind4,"Strings",sha) |0:|54: SDK.Link (ind1,"onCommand",ind2,"doCompare") |50: SDK.Link (ind2,"onTrue",ind3,"doPutText") |43: SDK.Link (ind3,"Text",ind4,"Text") |8: |23: SDK.UnSelectAll|31: ExecCmd ("1234567890") |25: SDK.Select (ind1)|25: SDK.Select (ind2)|25: SDK.Select (ind3)|25: SDK.Select (ind4)|41: 'SDK.Delete 'все удалить |3:End|0:|0:|
}
errorafterpaste.jpg
Работает так:
1. При выборе свойства начинается запуск редактора свойств.
2. Перед тем как открыть редактор свойств, на поле HiAsm вставляется ScriptEvents
3. Запускается скрипт который: устанавливает 4 элемента подключает их связями и отсылает команду, на которую элементы копируют SDK.AsText в буфер обмена схему с поля HiAsm. После этого элементы выделяются и удаляются.
4. Затем по заранее известному ID (100) элемента ScriptEvents удаляется и он.
5. Запускается редактор свойств, в который из буфера обмена можно получить исходники схемы.
Даже такой способ, мягко говоря не очень хорош. Даже если бы работал.