Page 36 of 74

Posted: Mon Apr 18, 2011 4:19 pm
by se7h
Infocatcher
Fr0sT
VladSh
+1

Posted: Wed May 11, 2011 8:53 pm
by Infocatcher
Scripts-Rus.txt wrote:AkelPad.VarType
...
Возвращаемое значение
Число. Тип (VARTYPE) переменной (VARIANT).
0 //VT_EMPTY
1 //VT_NULL
...
Напрашивается что-то вроде

Code: Select all

if(AkelPad.VarType(someVar) == AkelPad.VT_EMPTY) { ... }
:)

И немного предыстории. :)

Code: Select all

var oSet=AkelPad.ScriptSettings();
var nNumber;

if (oSet.Begin(WScript.ScriptBaseName, 0x2 /*POB_SAVE*/))
{
  oSet.Write("Number", 1 /*PO_DWORD*/, Number("-5")); // Вот тут-то и подвох
  oSet.End();
}

if (oSet.Begin(WScript.ScriptBaseName, 0x1 /*POB_READ*/))
{
  nNumber=oSet.Read("Number", 1 /*PO_DWORD*/);
  WScript.Echo("" + nNumber);
  oSet.End();
}
(например, мы получаем "-5" в виде строки от пользователя)

Правда, в старой версии подвох был круче.

Posted: Thu May 12, 2011 5:50 am
by Instructor
Добавлено: отображение статуса скриптов в диалоге.
Добавлено: метод Exec().
Добавлено: метод VarType().
Добавлено: метод IsInclude().
Добавлено: параметр в метод ScriptNoMutex(), который позволяет:
- Освободить поток программы от ожидания завершения скрипта. Только для внешнего вызова скрипта с кодом 2.
- Запретить запуск нескольких копий скрипта.
Исправлено: метод ScriptSettings().Begin создавал ini с некорректным именем (Win95/98/Me).

Added: scripts status displaying in dialog.
Added: method Exec().
Added: method VarType().
Added: method IsInclude().
Added: option in method ScriptNoMutex(), which allows to:
- Unlock main thread from waiting this script. Only if script is called with extenal call with code 2.
- Deny execution of the multiple script copies.
Fixed: method ScriptSettings().Begin created ini with incorrect filename (Win95/98/Me).


Scripts plugin v8.4

Posted: Thu May 12, 2011 5:58 am
by Infocatcher
Instructor wrote:Добавлено: отображение статуса скриптов в диалоге.
Теперь-то туда точно напрашивается возможность принудительного завершения зависшего скрипта. :D
И хорошо бы сортировку, чтобы можно было увидеть все запущенные скрипты сверху.

Posted: Thu May 19, 2011 9:44 am
by VladSh
Instructor
Прошу в метод Begin всё-таки добавить необязательный параметр или отдельный метод объекта oSet, которым указывать путь к папке с ini-файлом.
Вот пример: OpenSessionsDir.js, где можно было бы прочитать значение параметра SaveSessions через oSet, но этого сделать сейчас невозможно...(
Очень желательно, чтобы пути к ini можно было задавать не только внутри ...\AkelPad\... Если в пути нет вхождения текста "AkelPad" или лучше GetAkelDir(0), тогда, естественно, использовать только чтение из ini.

Ещё по старому (по диалогу скриптов):
- прошу добавить кнопку "Создать скрипт" - не надо будет постоянно искать нужную папку для сохранения (ещё одно удобство);
- прошу добавить возможность перехода в папку Include (там ведь тоже есть скрипты), для того, чтобы иметь возможность их быстрого открытия;
- добавить возможность быстро копировать имя скрипта - из контекстного меню;
- туда же, в контекстное меню на скрипте, можно зашарабанить "возможность принудительного завершения зависшего скрипта", о которой говорит Infocatcher.

Posted: Mon May 23, 2011 11:49 am
by private_joker
Начал-таки пользоваться скриптами, отметил некоторое неудобство меню скриптов: нет описания скрипта (кроме коментов в самом скрипте). Почему бы не выводить краткое описание в эдитбоксе, либо хинтом, при наведении курсора? Брать описание можно из комментария в самом скрипте (как doxygen например "дергает" описания для классов/методов из сорцов).

Posted: Wed May 25, 2011 6:48 pm
by Instructor
Исправлено: передача дескриптора oSys.RegisterCallback в AkelPad.MemCopy.

Fixed: pass oSys.RegisterCallback handle to AkelPad.MemCopy.


Scripts plugin v8.6

Posted: Thu May 26, 2011 4:49 pm
by Instructor
Исправлено: AkelPad.WindowSubClass не работал.

Fixed: AkelPad.WindowSubClass didn't work.


Scripts plugin v8.7

Posted: Fri May 27, 2011 3:56 pm
by Instructor
Добавлено: реализация oSys.RegisterCallback для x64 (будет доступно после релиза программы).
Исправлено: oSys.RegisterCallback вызывал ошибку в программе.

Added: oSys.RegisterCallback implementation for x64 (will be available after program release).
Fixed: oSys.RegisterCallback cause program error.


Scripts plugin v8.8

Posted: Sat May 28, 2011 10:49 am
by Instructor
Исправлено: запуск скрипта из скрипта с ожиданием завершения.

Fixed: script execution from the script with wait for completion.


Scripts plugin v8.9

Posted: Fri Jun 03, 2011 7:18 pm
by Instructor
VladSh wrote:Вот пример: OpenSessionsDir.js, где можно было бы прочитать значение параметра SaveSessions через oSet, но этого сделать сейчас невозможно...

Code: Select all

var oSet=AkelPad.ScriptSettings();
var pString;

if (oSet.Begin("..\\Sessions", 0x1 /*POB_READ*/))
{
  pString=oSet.Read("SaveSessions", 3 /*PO_STRING*/);
  oSet.End();
}
WScript.Echo(pString);

Posted: Fri Jun 03, 2011 7:26 pm
by Instructor
Добавлено: во внешних вызовах используется имя последнего обработанного скрипта, если указано "" вместо имени.
Добавлено: сохранение имени последнего обработанного скрипта.

Added: in external calls the name of the last processed script used, if "" set instead of the name.
Added: save name of last processed script.


Scripts plugin v9.0

Posted: Sun Jun 05, 2011 5:47 pm
by Instructor
Добавлено: метод AkelPad.GetLangId - определить идентификатор языка программы.

Added: method AkelPad.GetLangId - get program language ID.


Scripts plugin v9.1

Posted: Mon Jun 06, 2011 9:14 am
by Instructor
Infocatcher wrote:

Code: Select all

var oSet=AkelPad.ScriptSettings();
var nNumber;

if (oSet.Begin(WScript.ScriptBaseName, 0x2 /*POB_SAVE*/))
{
  oSet.Write("Number", 1 /*PO_DWORD*/, Number("-5")); // Вот тут-то и подвох
  oSet.End();
}

if (oSet.Begin(WScript.ScriptBaseName, 0x1 /*POB_READ*/))
{
  nNumber=oSet.Read("Number", 1 /*PO_DWORD*/);
  WScript.Echo("" + nNumber);
  oSet.End();
}
(например, мы получаем "-5" в виде строки от пользователя)
Я где-то отвечал, что метод Number() возвращает переменную с плавающей точкой.

Code: Select all

var nNumber=Number("-5"); 

WScript.Echo(AkelPad.VarType(nNumber));
Используйте parseInt или Number("-5") + 0.

Posted: Wed Jun 08, 2011 9:47 am
by VladSh
Instructor wrote:

Code: Select all

if (oSet.Begin("..\\Sessions", 0x1 /*POB_READ*/))
Эта штука только для папки Plugins работает или можно передавать внешний (не AkelPad\...) путь?
Хотелось бы видеть это в доке (метод Begin), а то там написано, что параметр - "наименование скрипта"; да и забудется со временем...
Теперь будет чуть легче; спасибо!