Site was down. And now all seems Ok.
Now I adds restoring of column selection. Not right way in this case (restoring is not needed for already selected text), but it's works.
Infocatcher wrote:Хорошо бы и правда какую-нибудь консоль и API для вывода туда сообщений.
поддерживаю
при работе таких программ как HTML Tidy, AStyle и подобных важно узнать результат их работы, да и в отладке скриптов лог-панель не помешает
[Yustas.NeO] wrote:AkelPad.GetSelStart вместо начала выделения возвращает ближайшую к началу текста границу выделения, аналогично AkelPad.GetSelEnd вместо конца выделения возвращает ближайшую к концу границу выделения.
Как-то странно себя ведет AkelPad.GetTextRange(0, -1) при вертикальном выделении...
Наглядно выглядит на примере скрипта: var allText=AkelPad.GetTextRange(0, -1);
AkelPad.MessageBox(AkelPad.GetMainWnd(), allText, "MyCaption", 64 /*MB_ICONINFORMATION*/);\
При нормальном выделении - все как надо.
[Yustas.NeO] wrote:AkelPad.GetSelStart вместо начала выделения возвращает ближайшую к началу текста границу выделения, аналогично AkelPad.GetSelEnd вместо конца выделения возвращает ближайшую к концу границу выделения.
Отсчет символов начинается с нуля, т.е. первый символ находится на позиции 0, второй на 1 и т.д.
[Yustas.NeO] wrote:AkelPad.GetSelStart вместо начала выделения возвращает ближайшую к началу текста границу выделения, аналогично AkelPad.GetSelEnd вместо конца выделения возвращает ближайшую к концу границу выделения.
Отсчет символов начинается с нуля, т.е. первый символ находится на позиции 0, второй на 1 и т.д.
Я не про это говорил.
Перефразирую:
При AkelPad.SetSel(0, 10) AkelPad.GetSelStart возвращает 0 AkelPad.GetSelEnd возвращает 10
При AkelPad.SetSel(10, 0) AkelPad.GetSelStart так же как и в первом варианте возвращает 0 а должен вернуть 10 AkelPad.GetSelEnd так же как и в первом варианте возвращает 10 а должен вернуть 0
Last edited by [Yustas.NeO] on Mon Jul 26, 2010 7:23 pm, edited 2 times in total.
[Yustas.NeO]
Не должны. Они делают то что их просят. Вы попросили начало, а началом считается меньшее, вы просили конец - концом считается большее. Пруфлинк EM_SETSEL:
Remarks
The start value can be greater than the end value. The lower of the two values specifies the character position of the first character in the selection. The higher value specifies the position of the first character beyond the selection.
Так что Вы можете сколько угодно их менять местами при вызове, обработаны они будут как книга пишет.
Хех Как раз таки УСТАНОВИТЬ выделение - работает правильно
Попробуйте AkelPad.SetSel(0, 10) и AkelPad.SetSel(10, 0), и посмотрите у какой границы выделения мигает курсор
Instructor, если это - системные медоты, возможно ли их допилить так, чтобы они работали _правильно_ а не "как книга пишет"?
[Yustas.NeO]
Читайте по приведенной мной ссылке дальше:
Начало выделения - всегда меньший из двух аргументов Start и End.
Конец выделения - всегда больший из двух аргументов Start и End.
Якорь выделения - аргумент Start.
Активный "хвост" выделения(там где курсор) - аргумент End.
У Вас есть функция AkelPad.GetSelStart - взять НАЧАЛО выделения, а не ЯКОРЬ.
У Вас есть функция AkelPad.GetSelEnd - взять КОНЕЦ выделения, а не ХВОСТ.
Допилить их нельзя, ибо они делают то что заявлено: возвращают концы выделения.
EM_(EX)GETSEL, которое используют эти функции делает то, что заявлено в её описании.
Для получения позиции курсора есть свои методы.