Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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);

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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.

Offline
Posts: 39
Joined: Fri Feb 08, 2013 6:49 am

Post by akkorn »

Подскажите пожалуйста, как можно получить/ задать текст определенной вкладке (например, вкладке с номером 2)? hWnd вкладки тоже известен.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ

Code: Select all

AkelPad.SendMessage(AkelPad.GetEditWnd(), 3178 /*AEM_SETRECT*/, 1 /*AERC_UPDATE*/, 0);
Fixed.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

akkorn
Переключиться на вкладку (AKD_FRAMEACTIVATE), если не активна, и использовать AkelPad.SetSel, AkelPad.ReplaceSel, AkelPad.GetSelText, AkelPad.GetTextRange.

Offline
Posts: 39
Joined: Fri Feb 08, 2013 6:49 am

Post by akkorn »

Instructor wrote:akkorn
Переключиться на вкладку (AKD_FRAMEACTIVATE), если не активна, и использовать AkelPad.SetSel, AkelPad.ReplaceSel, AkelPad.GetSelText, AkelPad.GetTextRange.
А без визуального переключения?

Задача стоит- найти во всех вкладках сочетание символов (напр. "asd") и вывести номера вкладок в msgbox. при этом хотелось бы,что бы интерфейс не "прыгал".

Спасибо.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

akkorn
Без переключения будет работать только в MDI: используем AKD_FRAMEFIND для перебора вкладок, получаем FI_WNDEDIT с помощью AKD_GETFRAMEINFO и передаем дескриптор окна редактирования в TextFind.

Offline
Posts: 39
Joined: Fri Feb 08, 2013 6:49 am

Post by akkorn »

Instructor wrote:akkorn
Без переключения будет работать только в MDI: используем AKD_FRAMEFIND для перебора вкладок, получаем FI_WNDEDIT с помощью AKD_GETFRAMEINFO и передаем дескриптор окна редактирования в TextFind.
А как можно проверить, использует ли пользователь MDI режим?

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post 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();

Offline
Posts: 39
Joined: Fri Feb 08, 2013 6:49 am

Post by akkorn »

Infocatcher
Спасибо, все получилось.

Скажите, а как можно получить весь текст определенной вкладки? Везде требуется диапазон, а нам он как раз не известен..
Last edited by akkorn on Mon Mar 11, 2013 5:00 am, edited 2 times in total.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

akkorn, используй AkelPad.Include("win32\user32.js") там есть все константы используемые для работы с пользовательской частью WINAPI

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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));
  }
}
Locked