Page 70 of 96
Posted: Sat Mar 02, 2013 5:09 pm
by Infocatcher
Posted: Sat Mar 02, 2013 5:43 pm
by KDJ
AkelEdit.h wrote:AEM_SETRECT
...
(RECT *)lParam == pointer to a RECT structure that specifies the new dimensions of the rectangle. If this parameter is NULL, the formatting rectangle is set to its default values.
AkelPad crashes when executing the following:
Code: Select all
AkelPad.SendMessage(AkelPad.GetEditWnd(), 3178 /*AEM_SETRECT*/, 1 /*AERC_UPDATE*/, 0);
Posted: Sat Mar 02, 2013 10:25 pm
by KDJ
Translator.js
Improved function listening the text - now there is no limit to 100 characters.
Added border to the active edit window.
Fixed an error in the file Translator.ini.
Posted: Wed Mar 06, 2013 7:51 pm
by KDJ
Translator.js
Improved "Listen" function for long texts.
Added "Listen" to the context menu.
Added hotkeys:
Ctrl+L - listen entire text from active edit panel,
Ctrl+Shift+L - listen selected text from active edit panel.
Posted: Thu Mar 07, 2013 6:05 am
by akkorn
Подскажите пожалуйста, как можно получить/ задать текст определенной вкладке (например, вкладке с номером 2)? hWnd вкладки тоже известен.
Posted: Thu Mar 07, 2013 6:16 am
by Instructor
KDJ
Code: Select all
AkelPad.SendMessage(AkelPad.GetEditWnd(), 3178 /*AEM_SETRECT*/, 1 /*AERC_UPDATE*/, 0);
Fixed.
Posted: Thu Mar 07, 2013 6:19 am
by Instructor
akkorn
Переключиться на вкладку (AKD_FRAMEACTIVATE), если не активна, и использовать AkelPad.SetSel, AkelPad.ReplaceSel, AkelPad.GetSelText, AkelPad.GetTextRange.
Posted: Thu Mar 07, 2013 6:33 am
by akkorn
Instructor wrote:akkorn
Переключиться на вкладку (AKD_FRAMEACTIVATE), если не активна, и использовать AkelPad.SetSel, AkelPad.ReplaceSel, AkelPad.GetSelText, AkelPad.GetTextRange.
А без визуального переключения?
Задача стоит- найти во всех вкладках сочетание символов (напр. "asd") и вывести номера вкладок в msgbox. при этом хотелось бы,что бы интерфейс не "прыгал".
Спасибо.
Posted: Thu Mar 07, 2013 6:45 am
by Instructor
akkorn
Без переключения будет работать только в MDI: используем AKD_FRAMEFIND для перебора вкладок, получаем FI_WNDEDIT с помощью AKD_GETFRAMEINFO и передаем дескриптор окна редактирования в TextFind.
Posted: Thu Mar 07, 2013 7:21 am
by akkorn
Instructor wrote:akkorn
Без переключения будет работать только в MDI: используем AKD_FRAMEFIND для перебора вкладок, получаем FI_WNDEDIT с помощью AKD_GETFRAMEINFO и передаем дескриптор окна редактирования в TextFind.
А как можно проверить, использует ли пользователь MDI режим?
Posted: Thu Mar 07, 2013 7:38 am
by Infocatcher
akkorn
AkelFiles\Docs\Scripts-Rus.txt wrote:Code: Select all
AkelPad.IsMDI
_____________
Проверить использование многооконного режима (MDI).
IsMDI();
Возвращаемое значение
0 //WMD_SDI Одноконный режим (SDI).
1 //WMD_MDI Многооконный режим (MDI).
2 //WMD_PMDI Псевдо-многооконный режим (PMDI).
Пример:
var nMDI=AkelPad.IsMDI();
Posted: Thu Mar 07, 2013 9:31 am
by akkorn
Infocatcher
Спасибо, все получилось.
Скажите, а как можно получить весь текст определенной вкладки? Везде требуется диапазон, а нам он как раз не известен..
Posted: Thu Mar 07, 2013 7:02 pm
by KDJ
akkorn
Read AkelPad sources:
http://sourceforge.net/projects/akelpad ... &download=
AkelDLL.h wrote:#define AKD_GETTEXTLENGTH (WM_USER + 161)
WM_USER = 1024 (hex 0x400):
http://msdn.microsoft.com/pl-pl/library ... 85%29.aspx
Posted: Thu Mar 07, 2013 7:29 pm
by FeyFre
akkorn, используй AkelPad.Include("win32\user32.js") там есть все константы используемые для работы с пользовательской частью WINAPI
Posted: Thu Mar 07, 2013 9:23 pm
by KDJ
akkorn wrote:Скажите, а как можно получить весь текст определенной вкладки? Везде требуется диапазон, а нам он как раз не известен..
The following code (
GetTextFromTab.js) works in MDI and PMDI mode:
Code: Select all
if (AkelPad.IsMDI() > 0) //MDI or PMDI
{
var nTab = 2; //zero-based tab index
var hMainWnd = AkelPad.GetMainWnd();
var lpFrameTab = AkelPad.SendMessage(hMainWnd, 1290 /*AKD_FRAMEFINDW*/, 8 /*FWF_BYTABINDEX*/, nTab);
if (lpFrameTab)
{
AkelPad.SendMessage(hMainWnd, 11 /*WM_SETREDRAW*/, false, 0);
var lpFrameCur = AkelPad.SendMessage(hMainWnd, 1285 /*AKD_FRAMEACTIVATE*/, 0, lpFrameTab);
var sText = AkelPad.GetTextRange(0, -1);
AkelPad.SendMessage(hMainWnd, 1285 /*AKD_FRAMEACTIVATE*/, 0, lpFrameCur);
AkelPad.SendMessage(hMainWnd, 11 /*WM_SETREDRAW*/, true, 0);
WScript.Echo(sText.substr(0, 50000));
}
}