Page 20 of 97
Posted: Mon Jul 19, 2010 4:12 pm
by KDJ
FeyFre wrote:But I need the number of sign, where the caret is.
Use message for edit window
EM_CHARFROMPOS
How do I use?
AkelPad.SendMessage(hWndEdit, EM_CHARFROMPOS, 0, -1)
- undefined "EM_CHARFROMPOS".
For example,
AkelPad.SendMessage(hWndEdit, 1078 /*EM_EXLINEFROMCHAR*/, 0, -1)
- returns the number of current row.
How to read a number (index) of the symbol?
Posted: Mon Jul 19, 2010 4:41 pm
by Infocatcher
VladSh wrote:Infocatcher wrote:На всякий случай: я имел в виду создание файла-шаблона.
Если о файле параметров, т.е. где хранятся данные
Нет, я про создание нового файла-шаблона, а не про файл с прототипом меню.
То есть пользователь выбирает «создать новый шаблон», вводит расширение файла, например, «cpp» и на редактирование открывается (и создается, если еще не существует) файл template.cpp.
Posted: Mon Jul 19, 2010 6:07 pm
by Infocatcher
VladSh
Тестовая:
newFileTemplate-test.js
Только вот со старой версией ShowMenuEx.js работает, а с новой – нет.
Подразумевается примерно такое меню:
Code: Select all
html=HTML-файл
js=JavaScript-файл
-
?edit=Редактировать шаблон...
Posted: Tue Jul 20, 2010 8:07 am
by Fr0sT
А где можно весь набор взять - сами файлы шаблонов, скрипт, кусок менюхи для ContextMenu?
Кстати, если говорить о формате настроек, то посмотрите в сторону
JSON. Для JS лучше не придумаешь. Правда, я не знаю, поддерживает ли движок скриптов eval().
Posted: Tue Jul 20, 2010 9:08 am
by se7h
Fr0sT wrote:Правда, я не знаю, поддерживает ли движок скриптов eval().
поддерживает
Posted: Tue Jul 20, 2010 10:08 am
by VladSh
Infocatcher wrote:Только вот со старой версией ShowMenuEx.js работает, а с новой – нет.

С новой тоже работает, отправил по личке.
Infocatcher wrote:Подразумевается примерно такое меню:
...
Не могу понять, почему менюху использовать именно для корректировки шаблонов? Это ведь нечастая задача. По моему, гораздо актуальнее пред. версия - вывод расширений для создания файла.
Но даже если и так, то можно для обоих случаев использовать вывод меню. Правда если юзер будет каждый раз жать "Редактировать шаблон..."

Но ему ведь можно это запретить, ведь правда?
Fr0sT wrote:А где можно весь набор взять - сами файлы шаблонов, скрипт, кусок менюхи для ContextMenu?
Когда-то это мой скрипт был, и в нём внутри были шаблоны, потом они расшились по файлам; скрипт удалили со страницы за ненадобностью, а о шаблонах не подумали...
Думаю,
Infocatcher поделится ссылочкой

Posted: Tue Jul 20, 2010 10:12 am
by FeyFre
Когда-то это мой скрипт был, и в нём внутри были шаблоны, потом они расшились по файлам; скрипт удалили со страницы за ненадобностью, а о шаблонах не подумали...
Ага, было такое. Я ещё их искал и так и не нашел.
Posted: Tue Jul 20, 2010 1:21 pm
by Instructor
KDJ wrote:How to read the cursor position? The cursor can be at the beginning or the end of the selection.
Code: Select all
var hWndEdit=AkelPad.GetEditWnd();
WScript.Echo("" + GetCaretOffset(hWndEdit));
function GetCaretOffset(hWndEdit)
{
var lpIndex;
var nOffset=-1;
if (lpIndex=AkelPad.MemAlloc(12 /*sizeof(AECHARINDEX)*/))
{
AkelPad.SendMessage(hWndEdit, 3130 /*AEM_GETINDEX*/, 5 /*AEGI_CARETCHAR*/, lpIndex);
nOffset=AkelPad.SendMessage(hWndEdit, 3136 /*AEM_INDEXTORICHOFFSET*/, 0, lpIndex);
AkelPad.MemFree(lpIndex);
}
return nOffset;
}
Posted: Tue Jul 20, 2010 1:28 pm
by KDJ
Instructor
Thank you very much. That is what I needed.
Posted: Tue Jul 20, 2010 1:55 pm
by Fr0sT
KDJ
about LinesMoveUp/Down, I guess it would be logical to unite these 2 scripts into one because they have most of code identical.
Posted: Tue Jul 20, 2010 3:12 pm
by VladSh
KDJ
I agree with Fr0sT.
In addition, the script makes multiple ReplaceSel, which is inconvenient when you undo. Better to pull the text into a variable, change it, and then insert once.
Posted: Tue Jul 20, 2010 3:14 pm
by Infocatcher
VladSh wrote:Я вспомнил... накололся на методах fso и проверке...
Так не работало: if (fso.method), а так работало: if (fso.method == true).
Что за методы - не помню, но лучше перебдеть, чем недобдеть

У них там очень криво все реализовано. *злобный смайлик*
Вот возьмем WScript.Echo:
Code: Select all
WScript.Echo(typeof WScript.Echo); // unknown
WScript.Echo(WScript.Echo); // Объект не поддерживает это свойство или метод
А на вид кажется, что это
Code: Select all
var WScript = {
Echo: function(val) { ... }
};
и предыдущий код должен выводить "function" и результат приведения функции к строке.
VladSh wrote:P.S. Что ж это за ужасы такие (код)? )))
Хитрый сферический пример основан на алгоритме сравнения.
Вот хорошая книга на тему:
http://javascript.ru/book/definitiveguide
VladSh wrote:Думаю,
Infocatcher поделится ссылочкой

Поделюсь, по-прежнему тестовая версия:
newFileTemplate-test.js.
Posted: Tue Jul 20, 2010 3:33 pm
by KDJ
Fr0sT wrote:KDJ
about LinesMoveUp/Down, I guess it would be logical to unite these 2 scripts into one because they have most of code identical.
VladSh wrote:KDJ
I agree with Fr0sT.
In addition, the script makes multiple ReplaceSel, which is inconvenient when you undo. Better to pull the text into a variable, change it, and then insert once.
Gentlemen, thank you very much for your good ideas. I will try to do it.
Posted: Tue Jul 20, 2010 4:46 pm
by VladSh
KDJ wrote:Gentlemen, thank you very much for your good ideas. I will try to do it.
It became interesting and I made myself, sorry...
ShiftVerticaly.js
Posted: Tue Jul 20, 2010 5:03 pm
by VladSh
Cool
Infocatcher wrote:VladSh wrote:Думаю,
Infocatcher поделится ссылочкой

Поделюсь, по-прежнему тестовая версия:
newFileTemplate-test.js.
Ребята и я имели ввиду, что у них нет шаблонов для создания, т.е. template.css и т.п...
Предлагаю выложить на всеобщее обозрение и дать сюда ссылки
А по скрипту один момент:
Когда нет папки newFileTemplate-test, то при выборе "Редактировать шаблон" ничего не происходит - файл шаблона не создаётся, т.к. нет папки..
У меня там было (блин, код снёс...)... короче я с помощью fso проверял, если папки нет, то создаывал, а потом уже создавал файл.
И почему не хотите вызывать менюху при создании?

Ну и что, что 2 раза вылетает, зато не надо реестр дёргать (пингвиноиды спасибо скажут), да и всё же красивше?..
