Page 67 of 74
Posted: Sun Oct 11, 2015 6:41 pm
by yozhic
Нашёл виновника!
Code: Select all
CmdLineBegin=/Call("Scripts::Main", 1, "LineBoardRClickPanel.js")
С чистым CmdLineBegin, кстати, и мелькание прекратилось.
Posted: Sun Oct 11, 2015 6:48 pm
by Instructor
yozhic
CmdLineEnd=/Call("Scripts::Main", 1, "LineBoardRClickPanel.js")
Posted: Sun Oct 11, 2015 6:52 pm
by yozhic
Теперь всё прекрасно. Спасибо большое.
Posted: Wed Oct 14, 2015 9:38 pm
by Cuprum
Instructor
Вы писали
Группируются только изменения текста.
Тогда есть ли какой-то способ, чтобы заменить с помощью скрипта фрагмент текста на другой, при котором ctrl+z будет возвращать в первоначальное, "чистое" состояние. Сейчас, похоже, в скриптах, где используется
Code: Select all
AkelPad.SetSel(...);
AkelPad.ReplaceSel(...);
после отмены остается "висеть" выделение текста. Уж очень хочется от этого избавиться.
Posted: Thu Oct 15, 2015 1:37 am
by Drugmix
Cuprum
А что мешает сделать SetSel() ещё раз, обнулив выделение и выставив каретку куда хочется (например, в начало первого вхождения)?
Posted: Thu Oct 15, 2015 3:51 pm
by Cuprum
Drugmix
Что-то не совсем уловил мысль. Ведь после отработки AkelPad.ReplaceSel(...) выделения и так нет (по умолчанию), зачем SetSel() еще раз?
На примере плагина toggleComments.js.
Вставляем через горячую клавишу однострочный комментарий, после этого, если отмотать шаг назад по ctrl+z, комментарий снимается, но строка остается выделенной. И вот эта "особенность" отмены, кхм....не так как у других

.
Posted: Thu Oct 15, 2015 7:41 pm
by Drugmix
Я чего-то запутался в том, что вы хотите:
Cuprum wrote:после отмены остается "висеть" выделение текста. Уж очень хочется от этого избавиться.
по этим словам я подумал, что мешает выделение и его надо убрать.
Но тут вы пишете:
[quote="Ведь после отработки AkelPad.ReplaceSel(...) выделения и так нет (по умолчанию), зачем SetSel() еще раз?"[/quote]
А потом снова:
если отмотать шаг назад по ctrl+z, комментарий снимается, но строка остается выделенной.
Поясните что вы хотите.
Я лишь сказал, что SetSel() можно использовать для сброса выделения (выставить начало и конец выделения в одно и то же место).
Posted: Thu Oct 15, 2015 8:02 pm
by Cuprum
Drugmix wrote:
Поясните что вы хотите.
Есть какой-то документ. В нем с помощью скрипта надо заменить один известный фрагмент текст на другой. Достигается это с помощью
Code: Select all
AkelPad.SetSel(начало фрагмента, конец фрагмента);
AkelPad.ReplaceSel(текст замены);
Теперь, если отменить действие скрипта, первоначальный фрагмент, к которому применялся скрипт становиться выделенным. Вот от этого ненужного выделения хочется избавиться при отмене.
Posted: Fri Oct 16, 2015 1:00 am
by Drugmix
Можно попробовать команду Undo изменить на Undo + .SetSel(0,0)...
Posted: Wed Oct 28, 2015 5:15 pm
by Kley
Instructor
Вопросы по нововведению:
Scripts-Rus.txt wrote:Внешний вызов
...
Call("Scripts::Main", 7, "METHOD", *RESULT)
Приведите, пожалуйста, еще пару примеров (примеры с AkelPad.TextFind видел). Интересует второй параметр с указателем. Но ведь:
Scripts-Rus.txt wrote:Предназначено для ContextMenu, Hotkeys, Toolbar плагинов.
Попробовал переделать вот такую строку:
Code: Select all
Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.SetClipboardText(AkelPad.GetTextRange(0, -1))`)
на такую:
Code: Select all
Call("Scripts::Main", 7, `AkelPad.SetClipboardText(AkelPad.GetTextRange(0, -1))`)
Ноль эмоций. Правда вот так в буфер попадает 0 (ноль):
Code: Select all
Call("Scripts::Main", 7, `AkelPad.SetClipboardText(AkelPad.GetSelText())`)
Так, конечно, работает:
Code: Select all
Call("Scripts::Main", 7, `AkelPad.SetClipboardText("текст в буфер")`)
А смысл? Похоже совсем я запутался и не туда рою. Помогайте, плиз.
Posted: Wed Oct 28, 2015 6:17 pm
by Instructor
Kley
Можно использовать только один метод.
Второй параметр (*RESULT) врятли пригодится, т.к. в методе If() можно использовать прямой вызов без "Call("Scripts::Main", 7, ...".
Posted: Sat Dec 12, 2015 8:58 pm
by KDJ
Instructor
I tested two versions of MessageBox:
Code: Select all
var hMainWnd = AkelPad.GetMainWnd();
var sMessage = "Test of MessageBox method. This text should be displayed in one line. In extended version of MessageBox, the line is broken.";
AkelPad.MessageBox(hMainWnd, sMessage, "MessageBox", 0x40 /*MB_ICONINFORMATION*/);
AkelPad.MessageBox(hMainWnd, sMessage, "MessageBox extended", 0x40 /*MB_ICONINFORMATION*/, 0, 1, "OK", 1 /*BMB_DEFAULT*/);
You can see the differences between the two versions:
1. In extended version, text line is broken.
2. Used different fonts.
3. Size and position of windows are different.
4. In extended version, you can not close the window by pressing Esc or Alt+F4.
Can you fix it in extended version?
You could add centering of the window within the owner window.
Posted: Tue Dec 15, 2015 5:43 pm
by Instructor
KDJ
In 4.9.7 extended message box closer to standard.
Posted: Tue Dec 15, 2015 5:45 pm
by Instructor
Добавлено: необязательный аргумент hDoc в метод SaveFile.
Added: optional argument hDoc in SaveFile method.
Scripts plugin v18.2
Posted: Mon Dec 28, 2015 10:43 am
by yozhic
Подскажите, пожалуйста. Строка
Code: Select all
AkelPad.TextReplace(hEditWnd, "abc", "123", 0x00000001, false);
просто выделяет текст "abc", ничего не заменяя. Так и должно быть? Если да, то в чём тогда отличие от
Code: Select all
AkelPad.TextFind(hEditWnd, "abc", 0x00000001);