![]() |
#11 |
Участник
|
Цитата:
Сообщение от sukhanchik
![]() Можно (по идее) попробовать обойтись и без правки класса Info.
Основная задача - послать окну Editora сообщение (окно найти через WinAPI) Alt+M (ну или какое другое) для того, чтобы ядро запустило метод showScripts. Далее - задача передать из Tabax информацию о том, какой метод запускать и задача определить в showScripts что его вызвали из Tabax. Передать можно через Infolog.globalcache, а определить - опять-таки - по наличию команды в globalcache. По крайней мере такой способ не затронет системные классы. Есть новая кнопочка которую можно при желании повесить в tabax. Стоим в коде на каком-нибудь поле таблицы, жмём кнопку "Справка по полю". Открывается форма с help-ом по полю и с путями в каких формах используется это поле для ввода данных или для просмотра. Если жмём на этот путь открывается в новом окне эта форма. В классе SysHelpBook изменить construct Добавить X++: case 'a': return new SysHelpBookField(sysHelp, url); X++: void clicked() { EditorScripts es; Editor e; ; super(); e = infolog.editor(); es = new EditorScripts(); es.helpField(e); } Метод в класс Editor X++: void helpField(Editor e) { TreeNode treeNode = TreeNode::findNode(e.path()); TmpxRefReferences tmpxRefReferences; Column nCol = e.columnNo() + 1; Line nLine = e.currentLineNo() + 1; ; treeNode.AOTmakeXref(1); tmpxRefReferences = xRefCreate::makeTmp(infolog.lastxRef()); select firstonly tmpxRefReferences order by Column desc where tmpxRefReferences.line == nLine && tmpxRefReferences.Column <= nCol; if (!tmpxRefReferences) return; treeNode = TreeNode::findNode(tmpxRefReferences.path()); if (treeNode && tmpxRefReferences.Kind == xRefKind::TableField) { HelpField::checkPost(tmpxRefReferences.parentName, tmpxRefReferences.name); } } Последний раз редактировалось miklenew; 21.07.2008 в 13:21. |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|