Scripts plugin
- Author
- Message
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: необязательные параметры в метод AkelPad.Include - nFlags, nCodePage, bBOM.
Added: optional paremeters in AkelPad.Include method - nFlags, nCodePage, bBOM.
Scripts plugin v17.6
Added: optional paremeters in AkelPad.Include method - nFlags, nCodePage, bBOM.
Scripts plugin v17.6
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Работает, спасибо!Instructor wrote:Добавлено: необязательные параметры в метод AkelPad.Include - nFlags...
А могли бы Вы сделать этот флаг по умолчанию? Потому что множество скриптов (не только моих) имеют такую конструкцию и не ожидают сообщения:
Code: Select all
if (!AkelPad.Include("libfile.js")) WScript.Quit();
Code: Select all
if (!AkelPad.Include("libfile.js")) {
...
}
else {
...
}
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
А зачем? Из справки:VladSh wrote:А могли бы Вы сделать этот флаг по умолчанию?
т.е. фактически с самого начала по сути используется:Метод Include аналогичен коду eval(AkelPad.ReadFile("...")), но позволяет выявлять место ошибки в добавляемом файле, если она присутствует.
Code: Select all
AkelPad.Include("libfile.js", 0xD /*ADT_BINARYERROR|ADT_DETECTCODEPAGE|ADT_DETECTBOM*/);
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Раньше сообщения об отсутствии подключаемого скрипта не было. Были написаны скрипты с учётом этого. Я прошу поставить флаг, подавляющий появление сообщения по умолчанию, чтобы все не переделывали скрипты. Случаи, где бы это сообщение было нужно, единичны, если вообще есть.Skif_off wrote:Разве этого не хватает?
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
VladSh
Прошу прощения, чего-то недопонимаю: взал скрипт с
скопировал в Include первый попавшийся бинарник, переименовал его в CreateDialog_functions.js, запустил скрипт - молча срабатывает WScript.Quit().
и , при этом в любом случае AkelPad.Include() возвращает true или false.
Кажется, не понял ни зачем nFlags в AkelPad.Include, ни вашу просьбу
Прошу прощения, чего-то недопонимаю: взал скрипт с
Code: Select all
if (! AkelPad.Include("CreateDialog_functions.js")) WScript.Quit();
и , при этом в любом случае AkelPad.Include() возвращает true или false.
Кажется, не понял ни зачем nFlags в AkelPad.Include, ни вашу просьбу
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Skif_off
Моя просьба не про бинарники (я ж не бинарники подключаю). А в случае, когда подключаемый файл отсутствует, не выдавать об этом сообщения.
Используя Ваш код, попробуйте удалить CreateDialog_functions.js и запустить скрипт, увидите о чём я говорю.
/Кстати, недавно был такой случай в "Дискуссии скриптов" - человек когда-то давно, когда не было этого сообщения, написал скрипт, в котором сделал подключение на какой-то свой файл; при определённых начальных параметрах у другого человека произошло попадание на эту строку и вылет этой ошибки. И никого не найдёшь и не узнаешь, что это за подключаемый файл, и что в нём должно быть. Хотя и без этого файла всё нормально работает, только ошибку кажет, которая ни к чему совершенно./
Моя просьба не про бинарники (я ж не бинарники подключаю). А в случае, когда подключаемый файл отсутствует, не выдавать об этом сообщения.
Используя Ваш код, попробуйте удалить CreateDialog_functions.js и запустить скрипт, увидите о чём я говорю.
/Кстати, недавно был такой случай в "Дискуссии скриптов" - человек когда-то давно, когда не было этого сообщения, написал скрипт, в котором сделал подключение на какой-то свой файл; при определённых начальных параметрах у другого человека произошло попадание на эту строку и вылет этой ошибки. И никого не найдёшь и не узнаешь, что это за подключаемый файл, и что в нём должно быть. Хотя и без этого файла всё нормально работает, только ошибку кажет, которая ни к чему совершенно./
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
Имел в виду пример ошибки, когда AkelPad.Include() не сможет прочитать файл и вернёт false, про отсутствие файла не подумал, ибо не сталкивался. Но как помогут nFlags метода AkelPad.ReadFile()?VladSh wrote:Моя просьба не про бинарники (я ж не бинарники подключаю).
/Припоминаю, кажется, SearchReplace_cml.js и SearchReplace_multi.js, у себя оставил Multi_SR.js./
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Skif_off wrote:Но как помогут nFlags метода AkelPad.ReadFile()?
Code: Select all
if (!AkelPad.Include("nonexist.js", 0x10)) {
WScript.Echo("А сообщения об ошибке-то и нет :)");
}
-
Offline
- Posts: 202
- Joined: Sat Mar 28, 2015 2:36 pm
- Location: Russia
Instructor
Странное поведение Системного меню или сочетания клавиш Alt + Space. Скрипты для примера: "SortLines.js", "LinesFilter.js".
Открыв меню (Alt + Space), выбрав стрелками вверх или вниз пункт, например: "Закрыть Alt+F4" жмем Enter - команда не проходит.
Опять появляется меню. Если в первый раз, сразу после открытия меню, нажать Alt, оно закроется, но Esc сработает только со второго раза.
Странное поведение Системного меню или сочетания клавиш Alt + Space. Скрипты для примера: "SortLines.js", "LinesFilter.js".
Открыв меню (Alt + Space), выбрав стрелками вверх или вниз пункт, например: "Закрыть Alt+F4" жмем Enter - команда не проходит.
Опять появляется меню. Если в первый раз, сразу после открытия меню, нажать Alt, оно закроется, но Esc сработает только со второго раза.
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
VladSh
Спасибо, кажется, я отупел ) Всегда думал, что тут
речь об ошибке определения кодировки/BOM и только.
Тогда nFlags должно быть равно 0x1C (ADT_DETECTCODEPAGE|ADT_DETECTBOM|ADT_NOMESSAGES)?
Спасибо, кажется, я отупел ) Всегда думал, что тут
Code: Select all
0x10 //ADT_NOMESSAGES Не выводить сообщения при ошибке автоопределения.
Тогда nFlags должно быть равно 0x1C (ADT_DETECTCODEPAGE|ADT_DETECTBOM|ADT_NOMESSAGES)?
-
Offline
- Posts: 202
- Joined: Sat Mar 28, 2015 2:36 pm
- Location: Russia
Ну, что же будем переделывать, со временем. А пока нашел для себя по-проще:Instructor wrote:Надо на AkelPad.CreateDialog скрипты переделывать.
Code: Select all
AkelPad.WindowGetMessage(0x4 /*WGM_NOKEYSEND*/);
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Kley
Это даже не костыль, а именно то, для чего этот флаг реализовывался. Реализовать реализовал, а в скрипты не добавил. Переделывание на AkelPad.CreateDialog даст немного другое - поддержку горячих клавиш вызова элемента управления (в том числе поддержку кнопки по умолчанию).
П.С. Флаг указан правильно, только расшифровка WGM_KEYDOWNUP.
Это даже не костыль, а именно то, для чего этот флаг реализовывался. Реализовать реализовал, а в скрипты не добавил. Переделывание на AkelPad.CreateDialog даст немного другое - поддержку горячих клавиш вызова элемента управления (в том числе поддержку кнопки по умолчанию).
П.С. Флаг указан правильно, только расшифровка WGM_KEYDOWNUP.