Page 17 of 74

Posted: Fri Jul 16, 2010 12:08 pm
by VladSh
VladSh wrote:
Fr0sT wrote:3) ReplaceSel после замены убирает выделение. Имхо, неудобно. Убрать выделение в скрипте намного легче, чем восстановить.
Тогда лучше дополнительным необязательным параметром, т.к. сохранить выделение - всё же очень редкая задача, которая в некоторых случаях достаточно легко решается.
Только что в нескольких скриптах столкнулся с этим... действительно, иногда неудобно восстанавливать, особенно когда размер вставляемого текста отличается от выделенного.
Я за дополнительный необязательный параметр! :D

WScript methods

Posted: Fri Jul 16, 2010 5:49 pm
by Surveyor
Instructor,

Re: accessing Shell object in WScript:
Instructor wrote:var WshShell=new ActiveXObject("WScript.shell");
Thanks! (I should have thought of that...)

But, what about accessing methods of the WScript object?

Example: how do you access WScript.Quit or WScript.Sleep?

Posted: Fri Jul 16, 2010 7:13 pm
by Fr0sT
Surveyor, WScript.Quit and WScript.Sleep are working as is.

Posted: Sat Jul 17, 2010 12:25 pm
by VladSh
Как-то странно устанавливается фокус на кнопку у WScript.Echo, если вызывать из скрипта другой скрипт с помощью eval(AkelPad.ReadFile(...)), то при вызове из этого вызываемого скрипта фокус устанавливается, а в запускаемом скрипте - нет...
Сделайте пожалуйста чтобы фокус устанавливался всегда.


Иногда неправильно определяется ошибка.

Ситуация-1: я написал typeOf (надо typeof), а сообщение мне пишет что-то типа "Не найден объект"...

Ситуация-2: был скрипт:

Code: Select all

function test()
{
	//...
	
	{
		//...
		
		AkelPad.MessageBox(hWndEdit, "Текст", "Заголовок", /*MB_ICONEXCLAMATION*
		
		//...
	}
}
при выполнении писало "Незавершённая строковая константа" - это правильно (см. после MB_ICONEXCLAMATION).
Но курсор устанавливался очень далеко внизу, совсем в другой функции... После того, как я вынес вышеуказанный код в отдельный файл скрипта и попытался его выполнить, то курсор установился на последнюю строку скрипта, т.е. на последнюю закрывающую скобку.
Всё это очень неудобно - долго искать, в чём ошибка...
Можно ли поправить?

Posted: Sat Jul 17, 2010 3:55 pm
by Infocatcher
VladSh wrote:Ситуация-1: я написал typeOf (надо typeof), а сообщение мне пишет что-то типа "Не найден объект"...
Ну, в принципе, он и не найден. Только нормальные интерпретаторы обычно выдают что-то вроде
Ошибка: typeOf is not defined

Тут, кстати, должно сообщать
'typeOf' - определение отсутствует

Или это от версии wscript.exe & Co зависит.

И, думается, плагин не занимается выдачей таких вот сообщений. И сделать тут ничего не удастся. Если только не написать свой «валидатор» или взять готовый. Но это очень большой велосипед выйдет.
В IE вон тоже неадекватные сообщения об ошибках случаются – движок-то тот же самый.

P.S. Кстати, да. Хорошо бы и правда какую-нибудь консоль и API для вывода туда сообщений.

Posted: Tue Jul 20, 2010 1:09 pm
by FeyFre
Хотелка... Нет, даже не хотелка, а потребность.
Добавить в скрипты в функции MemCopy, MemRead тип DT_BYTE. Надо. Некоторое API работает с байтами до сих пор, да и буфера обратывать побайтно есть нужда.

Posted: Tue Jul 20, 2010 1:25 pm
by Instructor
FeyFre
Хотелка...
Пример?

Posted: Tue Jul 20, 2010 2:03 pm
by FeyFre
Instructor
  1. WinUser.h определяет достаточное количество функций и структур которые содержат байтовые буфера. Вот пример функции.

    Code: Select all

    WINUSERAPI
    BOOL
    WINAPI
    SetLayeredWindowAttributes(
        __in HWND hwnd,
        __in COLORREF crKey,
        __in BYTE bAlpha,
        __in DWORD dwFlags);
    Да и в других файлах есть (особенно связанных с коммуникациями структурах, например тот же DCB для работы с последовательным портом)
  2. А если мне просто нужно прочитать бинарный файл, и распарить его, или наоборот что-то записать в него? А делать это я буду через буффер AkelPad.MemAlloc() с которым буду работать побайтно, ведь может же быть размер файла нечётный.
  3. Делаю сейчас связку Zen-Coding <-> AkelPad, и там нужно реализовать чтение/запись бинарных файлов(для вставки inline данных в ссылку, например <img src="data:image/gif;base64, <кодированное-содержимое>" alt=""/>) и выдать содержимое нагора, а я не могу прочитать из буффера меньше чем 2 байта.

Posted: Tue Jul 20, 2010 2:21 pm
by Instructor
FeyFre
Посмотрим.

Posted: Tue Jul 20, 2010 2:23 pm
by Instructor
Добавлено: опциональный параметр для выделения вставленного текста в метод ReplaceSel().

Added: optional parameter for the pasted text selection in the ReplaceSel() method.


Scripts plugin v6.3

Posted: Tue Jul 20, 2010 2:38 pm
by FeyFre
Instructor
Спасибо

Posted: Tue Jul 20, 2010 5:17 pm
by VladSh
Instructor wrote:Добавлено: опциональный параметр для выделения вставленного текста в метод ReplaceSel().
Здорово! 8)

Только по умолчанию наверное не это
false не выделять вставленный текст (по умолчанию).
т.к. текст остаётся выделенным.


Ещё заметил трабл:
текущий скрипт не запускается по команде "Выполнить", т.е. по Ctrl+F5.. Очень было удобно производить отладку текущего скрипта.. теперь с каждым скриптом приходится назначать какую-нить комбинацию клавиш :cry:

Posted: Tue Jul 20, 2010 5:23 pm
by Instructor
Исправлено: опциональный параметр для выделения вставленного текста в методе ReplaceSel() был всегда true.

Fixed: optional parameter for the pasted text selection in the ReplaceSel() method was always true.


Scripts plugin v6.4

Posted: Tue Jul 20, 2010 5:30 pm
by Instructor
Ещё заметил трабл:

Code: Select all

/// Запуск открытого на редактирование скрипта.

var fso=new ActiveXObject("Scripting.FileSystemObject");
var pFileName=fso.GetFileName(AkelPad.GetEditFile(0));

AkelPad.Call("Scripts::Main", 1, pFileName);

Posted: Tue Jul 20, 2010 5:32 pm
by VladSh
Instructor wrote:Исправлено: опциональный параметр для выделения вставленного текста в методе ReplaceSel() был всегда true.
Спасибо за оперативность! Работает! :)
Но только из Plugs-пака смог обновить, а отдельно скачивал, но версия старая..