Page 9 of 74

Posted: Sun Mar 23, 2008 3:44 am
by Instructor

Ещё одна мега-идея!

Posted: Tue Mar 25, 2008 1:07 pm
by VladSh
Предлагаю:

1. Сделать метод ListBox для выбора значений из списка; параметры:
- передаваемый массив значений;
- флаг множественного выбора (Boolean);
- значение по умолчанию (при передаче пустой строки не подсвечивать значения);
Возвращать массив при выборе значения(й) и нажатии ОК; не давать нажать ОК если значения не выбраны. Возвращать Null при нажатии Cancel.

2. По аналогии с плагином AutoComplete сделать спец. файлы для хранения параметров скриптов, т.к. скрипты из-за этого редактировать некорректно, мало того, что это неудобно - это дополнительный источник ошибок.
Необходимость этого давно назрела - есть множество скриптов, где нужен диалог с параметрами; сейчас в них выдаётся InputBox с передложением написать параметры вручную, или ещё хуже - эти параметры прописываются в скрипте жётско...
Например в папке со скриптами создать папку Parameters, в которой вручную создавать файлы с тем же именем, что и файл скрипта, только с другим расширением, например *.param.

Если в Scripts-плагин добавить ещё один метод по вызову диалога с параметрами, автоматически отыскивающий необходимый файл и выводящий параметры из него в диалог, то такое решение позволит сократить количество скриптов... например один скрипт вставки даты - при его вызове автоматом открывается диалог параметров, взятых из спец.файла, ну и т.д...
Может пример по вставке даты не очень удачен, но ExecConsole.js или ExecTool.js - самое то.
Можно было бы перевести на эту технологию большинство скриптов.

Posted: Thu Mar 27, 2008 11:00 pm
by Instructor
Added: IsPluginRunning method.


Scripts plugin v3.0

Posted: Mon Apr 07, 2008 4:34 pm
by Instructor
Changed: plugin icon.

Added: GetClipboardText method.


Scripts plugin v3.1

Posted: Tue Apr 22, 2008 2:02 am
by Instructor
Changed: recompiled to support AkelPad 3.5.6.


Scripts plugin v3.2

Posted: Wed Jun 04, 2008 5:46 pm
by Instructor
Added: support for AkelPad 4.0.0.


Scripts plugin v3.3

Posted: Thu Jul 03, 2008 7:22 pm
by Instructor
Changed: AkelPad 3.6.0 required.

Added: support for column selection operations (AkelPad 4.x.x only).


Scripts plugin v3.5

Posted: Sat Aug 02, 2008 5:39 pm
by Vladimir
Такая проблема: при попытке вызвать любой скрипт выскакивает ошибка сервера сценариев Windows 800A01AD "Невозможно создание объекта сервером программирования объектов". В частности, при запуске Test.js в этом сообщении указывается "Строка: 16" и "Символ: 1". Система WinXP Pro SP3, MS Win Script 5.6. С чем может быть связано и как от этого избавиться?

Posted: Sun Aug 03, 2008 3:19 am
by Instructor
Vladimir

Scripts-Rus.txt:
*** Установка ***

1. Скопируйте "Plugs\*.*" в "{AkelPad}\AkelFiles\Plugs".
2. Запустите "{AkelPad}\AkelFiles\Plugs\Scripts-register.bat".

Posted: Sun Aug 03, 2008 8:40 am
by Vladimir
Спасибо!

Posted: Wed Aug 06, 2008 6:38 am
by Dystopian
Вместо Scripts-register.bat и Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("..\Scripts.dll")) Then
   WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\.."
Else
   WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\AkelFiles\Plugs\"
End If
WshShell.Run("regsvr32 Scripts.dll")
_Scripts-unregister.vbs

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("..\Scripts.dll")) Then
   WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\.."
Else
   WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\AkelFiles\Plugs\"
End If
WshShell.Run("regsvr32 /u Scripts.dll")
Каждый скрипт проверяет, откуда он запущен (из плагина или в проводнике), так что можно использовать их, как раньше Scripts-register.bat и Scripts-unregister.bat. Знак '_' в начале имени "поднимет" их в списке скриптов плагина. Не возражаю, если файлы войдут в дистрибутив.

Posted: Mon Aug 25, 2008 2:17 pm
by Instructor
indvdum wrote:вот такая вот проблема: как выделить из %f в функции Exec() только имя файла без расширения?.. или вообще заменить расширение?..
Скрипт для Scripts плагина:

RunBaseName.js

Code: Select all

var AkelPad=new ActiveXObject("AkelPad.document");
var WshShell=new ActiveXObject("WScript.shell");
var fso=new ActiveXObject("Scripting.FileSystemObject");

var hMainWnd=AkelPad.GetMainWnd();
var pFileFullName=AkelPad.GetEditFile(0);
var pBaseName=fso.GetBaseName(pFileFullName);

if (hMainWnd)
{
    WshShell.Run("notepad.exe " + pBaseName + ".txt", 1, true);
}
Кнопка Toobar плагина:

Code: Select all

-"Запустить файл" Call("Scripts::Main", 1, "RunBaseName.js", "", 0) Icon(0)

Posted: Tue Aug 26, 2008 10:25 pm
by indvdum
всё, настроил акелпад как среду разработки на tasm ;) пришлось правда переписать вышеприведенный скрипт на vbs, на js почему-то ошибки были с командной строкой.. да еще не знаю какой есть аналог на js функции Left() на vbs..
в частности для линковки tlink на vbs:

Code: Select all

Set AkelPad=CreateObject("AkelPad.document")
Set WshShell=CreateObject("WScript.shell")
Set fso=CreateObject("Scripting.FileSystemObject")

hMainWnd=AkelPad.GetMainWnd()
pFileName=AkelPad.GetEditFile(0)
pExt=fso.GetExtensionName(pFileName)
if Lcase(pExt)="asm" then
	pFolder=fso.GetParentFolderName(pFileName)
	pFileName=left(pFileName,len(pFileName)-4)+".obj"
	command="cd " + chr(34) + pFolder + chr(34) + " && c:\tasm\bin\tlink.exe /v " + pFileName

	if hMainWnd <> 0 then WshShell.Run("%COMSPEC% /K " + command)
else WScript.Echo "Редактируемый документ имеет расширение, отличное от" + chr(34) + ".asm" + chr(34)
end if
еще вот такой вопрос (не знаю вообще-то сюда ли по нему надо обращаться..) - в приведенном коде если использовать конструкцию

Code: Select all

if условие1 and условие2
то второе условие никак не обрабатывается.. приходится использовать вложенные if.. непонятно почему так происходит

Posted: Thu Aug 28, 2008 6:40 am
by VladSh
indvdum
Скрипты собираем здесь.

Posted: Fri Aug 29, 2008 7:36 am
by VladSh
Dystopian wrote:Вместо Scripts-register.bat и Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs
...
_Scripts-unregister.vbs
...
Я делаю проще - в Главном меню создал свою менюху и прописал туда 2 строки:

Code: Select all

  "Scripts-register.bat" Exec("%a\AkelFiles\Plugs\Scripts-register.bat", "%a\AkelFiles\Plugs")
  "Scripts-unregister.bat" Exec("%a\AkelFiles\Plugs\Scripts-unregister.bat", "%a\AkelFiles\Plugs")
Всё работает.