Posted: Sun May 17, 2020 11:59 am
Да. Точнее, ниже 2000. Т.е. bOldWindows - это Windows 95, 98, Me.AZJIO wrote:флаг bOldWindows это в какой юникод не поддерживается? Ниже XP?
Да. Точнее, ниже 2000. Т.е. bOldWindows - это Windows 95, 98, Me.AZJIO wrote:флаг bOldWindows это в какой юникод не поддерживается? Ниже XP?
Code: Select all
Call("Coder::HighLight", 2, "#71AE71", 0, 0, 0)
Code: Select all
pSearchString=(unsigned char *)GetExtCallParam(pd->lParam, 3);
Code: Select all
Protected lpIndex, nOffset1, nOffset2
SendMessage_(*pd\hWndEdit, #AEM_GETINDEX, #AEGI_CARETCHAR, @lpIndex)
MessageRequester("lpIndex 1", Str(lpIndex))
SendMessage_(*pd\hWndEdit, #AEM_GETINDEX, #AEGI_LINEBEGIN, @lpIndex)
MessageRequester("lpIndex 2", Str(lpIndex))
nOffset1 = SendMessage_(*pd\hWndEdit, #AEM_INDEXTORICHOFFSET, 0, @lpIndex)
MessageRequester("nOffset1", Str(nOffset1))
SendMessage_(*pd\hWndEdit, #AEM_GETINDEX, #AEGI_LINEEND, @lpIndex)
nOffset2 = SendMessage_(*pd\hWndEdit, #AEM_INDEXTORICHOFFSET, 0, @lpIndex) + 1
MessageRequester("nOffset1", Str(nOffset2))
ProcedureReturn
Code: Select all
Protected lpIndex, nOffset1, nOffset2, nLine
; получить строку в которой находится указанный символ
nLine = SendMessage_(*pd\hWndEdit, #EM_EXLINEFROMCHAR, 0, gtr\cpMin)
MessageRequester("Строка в которой курсор", Str(nLine))
; получить позицию первого символа строки
nOffset1 = SendMessage_(*pd\hWndEdit, #EM_LINEINDEX, -1, @nLine)
MessageRequester("EM_LINEINDEX Позиция 1-го символа в строке", Str(nOffset1)) ; + #CRLF$ + Str(nLine)
gtr\cpMin = nOffset1
; gtr\cpMax = nOffset2
If SendMessage_(*pd\hMainWnd, #AKD_GETTEXTRANGEW, *pd\hWndEdit, @gtr)
Selected_Text$ = PeekS(gtr\pText, -1, #PB_Unicode)
EndIf
MessageRequester("Строка до курсора", Selected_Text$)
ProcedureReturn
Например, возьмем "...\AkelFiles\Plugs\Coder\Source\Coder.c"AZJIO wrote:Я просмотрел ресурсы плагов в них нет перевода и в языковых файлах DLL тоже нет перевода плагов.
Code: Select all
if (wLangID == LANG_RUSSIAN)
...
if (nStringID == STRID_ADDHIGHLIGHTWORDS)
return L"\x0414\x043E\x043F\x043E\x043B\x043D\x044F\x0442\x044C\x0020\x0441\x043B\x043E\x0432\x0430\x043C\x0438\x0020\x0438\x0437\x0020\x0431\x0430\x0437\x044B\x0020\x0048\x0069\x0067\x0068\x004C\x0069\x0067\x0068\x0074\x0027\x0430\x0020\x0028\x043E\x0442\x043C\x0435\x0447\x0435\x043D\x044B\x0020\x0437\x0432\x0435\x0437\x0434\x043E\x0447\x043A\x043E\x0439\x0020\x002A\x0029";
Code: Select all
if (nStringID == STRID_ADDHIGHLIGHTWORDS)
return L"Дополнять словами из базы HighLight'а (отмечены звездочкой *)";
Code: Select all
bProcess.b; ;;//TRUE show context menu
А чего не использовать ChmKeyword.js? У меня так и работает, как во многих IDE - выделяешь ключевое слово, жмёшь Ctrl+F1 и открывается соотв. страница хелпа.AZJIO wrote:По мотивам этой темы решил сделать в виде плага. Но пока AkelPad падает при вызове внутри плага функции EnumChildWindows. А она нужна чтобы найти элементы окна справки, чтобы вставить текст, кликнуть кнопку и т.д.