Scripts plugin
- Author
- Message
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Вопрос по применению AkelCall
А что даёт этот метод? Если можно поясните пожалуйста на примере, чтоб нагляднее было, а то чего-то не допонимаю... имеется ввиду вызов из скрипта других плагинов? Вроде бы это хорошо, но пока не чувствую как это можно применить. Если б функций из них, тогда да!..Instructor wrote:Added: Call method, to call program plugins.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Тест
Instructor
Это уже интересно!..
Скопировал из test.js 2 строки кода и получилось:
Строки в Akel'е сортируются, но при выполнении на строке 7 пишет ошибку "Объект не поддерживает это свойство или метод", код ошибки 800A01B6.
Ещё вопрос: что возвращается в lResult? Если массив отсортированных строк (что было бы очень кстати!), то может в Echo нужно передавать lResult, преобразованный строку?
Это уже интересно!..
Скопировал из test.js 2 строки кода и получилось:
Code: Select all
///Тест вызова функции сортировки из др. плагина
var AkelPad=new ActiveXObject("AkelPad.document");
var WScript=new ActiveXObject("WScript.Shell");
var lResult=AkelPad.Call("Lines::SortStrAsc");
WScript.Echo("Plugin has been called (" + lResult + ")");
Ещё вопрос: что возвращается в lResult? Если массив отсортированных строк (что было бы очень кстати!), то может в Echo нужно передавать lResult, преобразованный строку?
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
VladSh
В lResult возвращается код ошибки метода Call.
Code: Select all
///Тест вызова функции сортировки из др. плагина
var AkelPad=new ActiveXObject("AkelPad.document");
var lResult=AkelPad.Call("Lines::SortStrAsc");
WScript.Echo("Plugin has been called (" + lResult + ")");
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Понял.Instructor wrote:В lResult возвращается код ошибки метода Call.
Я просто думал, что создал скрипт, в нём что-то делаю... нужно вызвать функцию из плагина - передал туда значения + получил результат в скрипт, затем делаю что-то дальше (обрабатываю ещё как-то полученные значения) в скрипте, а уж потом отражаю результат а окне редактирования.
Updated: или вообще не в Akel'е, а выгружая куда-то в файл, типа "Сохранить как...", только со своей предварительной обработкой.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Ещё идея!
Можно вызывать из скрипта плагины - хорошо.Instructor wrote:Added: Call method, to call program plugins.
Если уж нельзя добавить команду, которая вызывает функции (и возвращает в скрипт значения!) из плагинов и самого AkelPad'а, то возможно было бы неплохо и логично добавить команду-аналог Command() из ContextMenu, чтобы из скрипта по номеру можно было вызывать внутренние команды AkelPad'а.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Уточнение
Спасибо.Instructor wrote:см. "//Send message" в Test.js, Test.vbs.
С номерами команд разобрался - это 3-й параметр, а что означает это:
Code: Select all
Const WM_COMMAND=273
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Re: Уточнение
Об этом в поисковых системах вы найдете исчерпывающую информацию.VladSh wrote:Почему именно 273?Code: Select all
Const WM_COMMAND=273
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Вопросы, возможно и предложения...
Очень часто требуется переименовать текущий файл (открытый в текущей закладке или окне), такой функции к огромному сожалению в AkelPad'е нет, поэтому приходится писать самому...
Алгоритм прост:
1. Взять имя файла текущей закладки.
2. Выдать диалог пользователю для изменения имени файла.
3. Подать команду на закрытие файла в текущей закладке, ждать результата если не сохранён.
4. Переименовать файл на диске.
5. Открыть новый файл в той же закладке, т.е. если всего открыто 10 файлов (MDI), а я переименовываю 4-й, то файл должен открыться именно в 4-й закладке.
Было бы здорово!
Вопросы по ходу: всё вроде ясно, но как сделать п.3 и 5?! - не нашёл соотв. номеров команд в AkelDLL.h. Как быть, что посоветуете?
Может быть в новой версии AkelPad'а стоит добавить эти команды?
Алгоритм прост:
1. Взять имя файла текущей закладки.
2. Выдать диалог пользователю для изменения имени файла.
3. Подать команду на закрытие файла в текущей закладке, ждать результата если не сохранён.
4. Переименовать файл на диске.
5. Открыть новый файл в той же закладке, т.е. если всего открыто 10 файлов (MDI), а я переименовываю 4-й, то файл должен открыться именно в 4-й закладке.
Было бы здорово!
Вопросы по ходу: всё вроде ясно, но как сделать п.3 и 5?! - не нашёл соотв. номеров команд в AkelDLL.h. Как быть, что посоветуете?
Может быть в новой версии AkelPad'а стоит добавить эти команды?
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am