Попытался использовать AkelPad через Automation из MS Access и ничего не получается Это вообще реально? Если да - ткните, пожалуйста, где можно об этом почитать.
Posted: Fri Sep 30, 2011 2:39 pm
by FeyFre
Omega, интересно, а что именно не получается? И меня всё получается.
Posted: Fri Sep 30, 2011 3:14 pm
by Omega
FeyFre, ну я бы сказал, что практически ничего не получается.
Set objApp = GetObject("", "AkelPad.document")
Set objOfficeApp = GetObject(, "AkelPad.document")
Set objOfficeApp = CreateObject("AkelPad.document")
это все возвращает ошибку. Но видимо изначальная проблема в том, что я не понимаю, как зарегистрировать в системе AkelPad как Automation сервер, сам по себе он не зарегистрирован. Попытка добавить его вручную тоже к успеху не приводит.
Posted: Fri Sep 30, 2011 3:34 pm
by FeyFre
Omega
"А кто Вам сказал, Дринкинс, что это американский сериал?" (с)
Posted: Fri Sep 30, 2011 5:28 pm
by Omega
FeyFre, если можете помочь по теме, то помогите, пожалуйста. Если просто так зашли в тему, то спасибо, что заглянули, идите дальше.
Posted: Fri Sep 30, 2011 7:46 pm
by VladSh
Omega
Когда-то старый АкелПад (Скриптс-сплагин) регистрировался, но это убрали.. и для большинства случаев правильно сделали, но то, что тот кусочек потеряли, это жаль. Если бы ещё можно было окно Акела встраивать как OLE, то вообще было бы прикольно! У меня редактор лотусскрипта только что по эклипсовски красивый, а по функционалу убогий до горя; уже не раз думал "а вот бы заменить АкелПадом")
Posted: Sat Oct 01, 2011 5:55 am
by Instructor
Omega
Ни AkelPad, ни плагины не регистрируются в системе как COM-сервер. А какая конкретная задача стоит?
Posted: Sat Oct 01, 2011 12:09 pm
by Omega
Есть БД на MS Access с формочками и тыды, в базе среди прочего хранятся данные в формате Xml, которые нужно редактировать. Обычное поле редактирования MS Access для этого подходит очень слабо, несколько раз искал текстовые редакторы с подсветкой синтаксиса и поддержкой автоматизации, чтобы можно было использовать либо как in либо как out proc server. Пока ничего такого не нашел. Недавно перешел на AkelPad, как основной редактор для xml, все очень удобно и хорошо. Думал что удастся попользовать и через автоматизацию прямо из БД.
Posted: Sat Oct 01, 2011 2:53 pm
by Fr0sT
Как временное решение можно скидывать во временный файл и уже на него натравливать Акел
Posted: Sat Oct 01, 2011 8:47 pm
by Omega
Fr0sT, да, такое в-общем очевидное решение, конечно, приходило в голову, и, к сожалению, оно не подходит по разным причинам. Буду искать дальше ...
Posted: Tue Oct 04, 2011 2:49 pm
by Instructor
Omega
Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было
(сборка осуществляется через Library-Build-Eng.cmd).
Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.
Posted: Tue Oct 04, 2011 6:00 pm
by FeyFre
Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было реализовано (сборка осуществляется через Library-Build-Eng.cmd).
Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.
В этом же AkelPad.dll реализовать ActiveX/Ole классы. Только не плохо бы убедится что-бы можно было бы создать много экземпляров этого добра(т.е. не использовать глобальных рабочих данных, только служебные COM). А плагины у нас большинство(если не все) на глобальные данные завязаны. Работы много.
(Кстати, просьба пофиксить последнюю строчку akelpad_4\AkelEdit\Build.cmd
if defined EXITCODE exit %2 %EXITCODE%
а то она мне родительский шел закрывает вопреки моему желанию)
ЗЫ: я было намылился делать плагин к Lister-у(просмотр в TotalCmd), но так как сам AkelEdit.Dll магии не содержит, ибо магия в плагинах и самом редакторе, то отложил проект до лучшим времен(что-бы не соврать, было это 20.03.2011). Теперь значительно легче будет.
Posted: Wed Oct 05, 2011 11:42 am
by Instructor
FeyFre wrote:(Кстати, просьба пофиксить последнюю строчку akelpad_4\AkelEdit\Build.cmd
if defined EXITCODE exit %2 %EXITCODE%
а то она мне родительский шел закрывает вопреки моему желанию)
Легче уж Exit /b сделать в Build.cmd
Или вообще
SET ERRORLEVEL=%EXITCODE%
GOTO EOF
Posted: Tue Oct 11, 2011 11:40 am
by Omega
Instructor wrote:Omega
Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было реализовано.
Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.
Не обязательно inproc server, наверное подошел бы и outproc, чтобы AkelPad можно было вызвать, загрузить в него документ, указать формат содержимого (сейчас пока файл не сохранишь подсветка не работает) и потом забрать измененный документ.