Вверх ↑
Этот топик читают: Гость
Ответов: 2236
Рейтинг: 676
#1: 2014-01-05 22:58:54 ЛС | профиль | цитата
Вопрос связан с пакетом Modules с созданием редакторов (Диалог HiAsm).
Для тех кто не в курсе.

В папке intedit лежат файлы sha которые создают редактор свойст отображающийся если в ini файла элемента есть строке:
#ini
[Handlers]
Название файла=Название свойства
К примеру у Img_Arc:Дуга (вкладка ГрафикаРисование) в ini файле прописано:
#ini
[Handlers]
PointXY=Point3,Point4
В результате при выборе свойства Point3 или Point4 открывается PointXY.sha (оно также открывается и при выборе Point1 и Point2, наследуется из файла ImgDrawPoint.ini).
Элемент hcHiAsmTrasmitter: Обмен данными со средой выдает значение свойства. Было бы очень хорошо чтоб он мог выдавать EID элемента и возможность получить всю схему. Но кроме Dilma это вряд ли кто исправит. Возможно кто нибудь знает способ, как получить схему в редактор? Пробовал делать так:code_32760.txt Но недостаток такого способа в непопадании элементов из родительских контейнеров (если они есть) и выделение всех элементов (не есть хорошо).
карма: 11

0
файлы: 1code_32760.txt [1.9KB] [423]
Разработчик
Ответов: 26113
Рейтинг: 2126
#2: 2014-01-06 01:44:38 ЛС | профиль | цитата
Интересно, а как в среде делается построение дерева проекта, там же все элементы отображаются Как-то в этой области совсем не хватает информации
карма: 22

0
Ответов: 2236
Рейтинг: 676
#3: 2014-01-06 17:54:43 ЛС | профиль | цитата
nesco писал(а):
как в среде делается построение дерева проекта, там же все элементы отображаются
nesco, если этот вопрос адресован мне, то я не знаю.
ЕМНП то задавался вопрос Dilma, о том где храниться текущая схема с рабочего поля HiAsm, но меня тогда это не интересовало и в памяти не задержалось. Поиск не помог, но не исключено что вопрос обсуждался в netroom-е.
Пробовал еще вот такой вариант:code_32763.txtОн вроде и логичней:
1. Открыть исходники схемы (оно же Ctrl+R).
2. Выделить все (оно же Ctrl+A).
3. Скопировать (оно же Ctrl+C).
4. Закрыть (оно же Alt+F4).
Но пункт 1 возможен, только если было сохранение в файл. Да и пункты 2 и 3 не могут быть выполнены из-за отсутствия фокуса на открытом окне исходника схемы.
карма: 11

0
файлы: 1code_32763.txt [1.6KB] [367]
Разработчик
Ответов: 26113
Рейтинг: 2126
#4: 2014-01-06 18:08:02 ЛС | профиль | цитата
sla8a писал(а):
если этот вопрос адресован мне

Нет, не тебе, это я вообще задал. Сама среда есть, но вот инфы о ней катастрофичеки мало
карма: 22

0
Ответов: 5227
Рейтинг: 587
#5: 2014-01-07 10:48:34 ЛС | профиль | цитата
sla8a писал(а):
Возможно кто нибудь знает способ, как получить схему в редактор?

можно через SDK - пример code_32766.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
файлы: 1code_32766.txt [801B] [405]
Голосовали:sla8a
Ответов: 2236
Рейтинг: 676
#6: 2014-01-08 00:22:14 ЛС | профиль | цитата
andrestudio писал(а):
можно через SDK
Нет не получится. Проверил все возможные варианты, ничего не подходит.
SDK.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:|
}


(для наглядности скрипт в SDKBtn)Который скопирует все элементы в буфер обмена.Но при попытке вставить ScriptEvents получаю ошибку.
errorafterpaste.jpg
Вот кто знает почему такой вариант выдает ошибку: testsdk.sha

Работает так:
1. При выборе свойства начинается запуск редактора свойств.
2. Перед тем как открыть редактор свойств, на поле HiAsm вставляется ScriptEvents
3. Запускается скрипт который: устанавливает 4 элемента подключает их связями и отсылает команду, на которую элементы копируют SDK.AsText в буфер обмена схему с поля HiAsm. После этого элементы выделяются и удаляются.
4. Затем по заранее известному ID (100) элемента ScriptEvents удаляется и он.
5. Запускается редактор свойств, в который из буфера обмена можно получить исходники схемы.

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

карма: 11

0
файлы: 2errorafterpaste.jpg [8.7KB] [537], testsdk.sha [2.2KB] [298]
Ответов: 5227
Рейтинг: 587
#7: 2014-01-08 11:33:16 ЛС | профиль | цитата
sla8a, делать через буфер вероятно не очень правильно.
Может есть смысл сделать через плагин

p.s жаль конечно что Dilma не сделал COM интерфейс
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)