Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Kley wrote:Получить hWndControl, созданных элементов управления, можно только так?
Да.

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

Post by Instructor »

Исправлено: обработка нулевого указателя в строковом параметре.

Fixed: parsing null pointer in string argument.


Scripts plugin v17.0

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

Post by Instructor »

Добавлено: поддержка глобальных горячих клавиш Hotkeys плагина. Требуется AkelPad 4.9.5 или выше.

Added: support for global keys of Hotkeys plugin. Required AkelPad 4.9.5 or higher.


Scripts plugin v17.1

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

Post by Instructor »

Добавлено: GetFilePath - обработка нулевого указателя в строковом параметре.

Added: GetFilePath - parsing null pointer in string argument.


Scripts plugin v17.2

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor, Вы молодец. Спасибо.

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

Post by Instructor »

Исправлено: передача отрицательного значения во внешнем вызове.

Fixed: passing negative value in external call.


Scripts plugin v17.3

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor
Хотелось бы в методе Include увидеть необязательный параметр 'куда выводить сообщение об отсутствии включаемого файла' с примерными значениями:
- 0 или не задано - без сообщения (по умолчанию - просто когда писалась основная масса скриптов, ожидалось, что сообщения не будет, и его вроде же не было);
- 1 - MsgBox;
- 2 - в панель Log-плагина.

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

Post by Instructor »

Исправлено: позиция ошибки при выполнении метода AkelPad.GetArgValue.
Исправлено: утечка памяти в методе AkelPad.Exec.

Fixed: error location when executing AkelPad.GetArgValue method.
Fixed: memory leak in AkelPad.Exec method.


Scripts plugin v17.4

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

Post by KDJ »

Instructor
If in AkelPad.CreateDialog is used WS_MAXIMIZEBOX style (eg. 0x90CB0000 = WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX) and flag 0x2 = CDF_PIXELS, coordinates are in dialog units not in pixels.
If style is without WS_MAXIMIZEBOX (eg. 0x90CA0000 = WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX) and flag 0x2 = CDF_PIXELS, coordinates are in pixels.

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

Post by Instructor »

KDJ
Not reproduced - results are the same. Can you post the full sample?

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

Post by KDJ »

Instructor
I'm sorry, I was wrong. This applies to DS_SETFONT and not to WS_MAXIMIZEBOX.
Example:

Code: Select all

var oSys     = AkelPad.SystemFunction();
var hMainWnd = AkelPad.GetMainWnd();
var sClass   = "Dialog box test";
var sTitle1  = "With DS_SETFONT";
var sTitle2  = "Without DS_SETFONT";
var nStyle1  = 0x90CA0040; //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|DS_SETFONT
var nStyle2  = 0x90CA0000; //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX
var nFlags   = 0x2; //CDF_PIXELS
var IDSTATIC = 1000;
var nW = 250;
var nH = 100;

AkelPad.WindowRegisterClass(sClass);

var hDlg1 = AkelPad.CreateDialog(0, sClass, sTitle1, nStyle1, 100, 100, nW, nH, hMainWnd, DialogCallback, nFlags, 0, 0, "", 0, 0, "|",
            //ExSt, Class,    Title,      Style,  X,  Y,     W,     H,       ID, lParam
            0x0000, "STATIC", "",    0x50800000, 10, 10, nW-20, nH-20, IDSTATIC, 0);

var hDlg2 = AkelPad.CreateDialog(0, sClass, sTitle2, nStyle2, 360, 100, nW, nH, hMainWnd, DialogCallback, nFlags, 0, 0, "", 0, 0, "|",
            //ExSt, Class,    Title,      Style,  X,  Y,     W,     H,       ID, lParam,
            0x0000, "STATIC", "",    0x50800000, 10, 10, nW-20, nH-20, IDSTATIC, 0);

AkelPad.WindowGetMessage();
AkelPad.WindowUnregisterClass(sClass);

function DialogCallback(hWnd, uMsg, wParam, lParam)
{
  if (uMsg == 272 /*WM_INITDIALOG*/)
  {
    var lpRect = AkelPad.MemAlloc(16); //sizeof(RECT)
    oSys.Call("User32::GetClientRect", hWnd, lpRect);
    var nW = AkelPad.MemRead(_PtrAdd(lpRect,  8), 3 /*DT_DWORD*/);
    var nH = AkelPad.MemRead(_PtrAdd(lpRect, 12), 3 /*DT_DWORD*/);
    AkelPad.MemFree(lpRect);
    oSys.Call("User32::SetDlgItemTextW", hWnd, IDSTATIC, "In pixels\n\nWidth: " + nW + "\nHeight: " + nH);
  }
  else if (uMsg == 273) //WM_COMMAND
  {
    if ((wParam & 0xFFFF) == 2 /*IDCANCEL*/)
    {
      oSys.Call("user32::PostQuitMessage", 0);
      oSys.Call("user32::DestroyWindow", hDlg1);
      oSys.Call("user32::DestroyWindow", hDlg2);
    }
  }
  return 0;
}

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

Post by Instructor »

Исправлено: вычисление коэффициента масштабирования в методе CreateDialog с флагом CDF_PIXELS и без DS_SETFONT.

Fixed: scaling factor calculation in CreateDialog method with CDF_PIXELS flag and without DS_SETFONT.


Scripts plugin v17.5

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

Post by KDJ »

Instructor
Thank you very much, works perfectly.

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

Post by KDJ »

Instructor
Still if run script from command line (as ActiveX) it does not work properly (CDF_PIXELS without DS_SETFONT).
See in HtmlView.js.

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

Post by Instructor »

KDJ
Works fine for me:

Code: Select all

wscript.exe c:\TC\AkelPad\AkelFiles\Plugs\Scripts\HtmlView.js c:\TC\AkelPad\AkelFiles\Docs\AkelHelp-Rus.htm
Result the same if I run HtmlView.js from AkelPad.
Post Reply