Instructor wrote:private_joker
Таковой настройки пока нет - используется системный GUI шрифт.
Если что, в Clipboard та же самая беда. Если сильно лениво делать выбор шрифта может в .ini файле вручную добавлять пару ключ=значение или хотя бы брать из настроек AkelPad'а Вид->Шрифт, а не непонятно откуда (а то как слепой крот вглядываюсь в 8-й шрифт, при том что работаю с 11-м, в системе не меняю потому, что интерфейс многих программ, что характерно и для разработки тоже, рисовали индусы, все куда-то вылазит/залазит/не вмещается, про сайзеры и то что en-us довольно лаконичен в плане сравнения с ru-ru тоже эти люди видимо не слышали).
Знаю, что несложно, поэтому прошу добавить.
Posted: Thu Mar 31, 2011 6:57 pm
by Instructor
private_joker
Реализовано.
Posted: Thu May 12, 2011 5:16 am
by Instructor
Изменено: для окна плагина назначается шрифт текущего окна редактирования. Добавлено: параметры для указания префикса и суффикса во внешний вызов с кодом 1.
Changed: assigned for the plug-in window the font of the current editing window. Added: parameters to specify the prefix and suffix to an external call with code 1.
Можно ли как-то добавить ещё один параметр в метод (текст), чтобы можно было его вызывать в скриптах, так чтобы в работе скрипта преобразовывался текст. Пример:
Text = "Спасибо"
Text16 = AkelPad.Call("HexSel::Main", 1, 41,"","",Text)
то в итоге Text16 = "21043F0430044104380431043E04"
var pText="Спасибо";
WScript.Echo("1." + StrToHex(pText));
function StrToHex(pString)
{
var pHex="";
var pCharCode;
var i;
for (i=0; i < pString.length; ++i)
{
pCharCode=pString.charCodeAt(i).toString(16).toUpperCase();
while (pCharCode.length < 4) pCharCode="0" + pCharCode;
pHex=pHex + "" + pCharCode + "";
}
return pHex;
}
Изменено: если флаги 1 и 2 во внешнем вызове с кодом 1 не указаны, используется автоматическое распознавание направления конвертирования. Изменено: флаги 16 и 32 во внешнем вызове с кодом 1 объединены в один - флаг 16. Добавлено: автоматическое распознавание направления преобразования.
Changed: if flags 1 and 2 in the external call with code 1 are not specified, automatic direction of conversion is used. Changed: flags 16 and 32 in the external code with code 1 combined to one - flag 16. Added: automatic direction of conversion.
Instructor
В связи с обновлением плагина пример GetHexSel.js не работает
можно его переделать...
и ещё просьба переделать на vbs, потому что эти функции использую в vbs скриптах.
' Функция конвертации Hex в Текст
Function HexToStr(ppText)
With AkelPad
Call .Command(4101)
WScript.Sleep 10
sText = RunScript(ppText, 42)
HexToStr = Left(sText, Len(sText))
Call .SendMessage(.GetEditWnd(), 3087, false, 0)
Call .SendMessage(.GetEditWnd(), 3079, 0, 0)
Call .Command(4318)
End With
End Function
' Функция конвертации Текст в Hex
Function StrToHex(ppText)
StrToHex = RunScript(ppText, 41)
End Function
Function RunScript(pText, hFlag)
With AkelPad
hWndEdit = .GetEditWnd()
If Len(hWndEdit) > 0 And Len(pText) > 0 Then
If X64 Then
mm = 112 : cc = 24 : vv = 48
Else
mm = 56 : cc = 12 : vv = 24
End If
lpSel = .MemAlloc(mm)
lpCaret = .MemAlloc(cc)
'Сохранить состояние
Call .SendMessage(hWndEdit, 3185, 3, true)
Call SetRedraw(hWndEdit, false)
Call .SendMessage(hWndEdit, 3125, lpCaret, lpSel)
Call .SetSel(0,0)
Call .ReplaceSel(pText, true)
Call .Call("HexSel::Main", 1, hFlag)
RunScript = .GetSelText()
Call .SendMessage(hWndEdit, 3077, 0, 0)
Call .SendMessage(hWndEdit, 3077, 0, 0)
'Восстановление состояния
dwFlags=.MemRead(lpSel + vv, 3)
Call .MemCopy(lpSel + vv, dwFlags, 3)
Call .SendMessage(hWndEdit, 3126, lpCaret, lpSel)
Call SetRedraw(hWndEdit, true)
Call .SendMessage(hWndEdit, 3185, 3, false)
Call .MemFree(lpCaret)
Call .MemFree(lpSel)
End If
End With
End Function
Function SetRedraw(hWnd, bRedraw)
With AkelPad
Call .SendMessage(hWnd, 11, bRedraw, 0)
if bRedraw Then Call .SystemFunction().Call("user32::InvalidateRect", hWnd, 0, true)
End With
End Function