Page 69 of 97
Posted: Thu Mar 17, 2011 8:53 pm
by Infocatcher
Posted: Thu Mar 17, 2011 9:47 pm
by FeyFre
KDJ
NextChar return next char always(ie works until EOF), NextCharInLine - if it riches end of line, it returns NULL (fails) ie works until EOL, so you can iterate in simple while loop
Code: Select all
while(SendMessage(edit,AEM_GETINDEX,AEGI_NEXTCHARINLINE, (LPARAM)&charindex)
{
// do stuff
}
Posted: Fri Mar 18, 2011 5:30 pm
by Infocatcher
converter-test.js
Added recoding to/from UTF-16* and UTF-32*.
Added warning for slow operations. Only fixed speeds now – seems like decodeURI* is non-linear.
crypt-test.js
Fixed showing/hiding of second password field.
Added -onlySelected argument.
Added built-in tests and -test argument.
getHash-test.js
Added recoding to UTF-16* and UTF-32*.
Posted: Fri Mar 18, 2011 6:36 pm
by KDJ
FeyFre wrote:NextChar return next char always(ie works until EOF), NextCharInLine - if it riches end of line, it returns NULL (fails) ie works until EOL, so you can iterate in simple while loop
Thanks
FeyFre.
Now I understand.
Posted: Fri Mar 18, 2011 7:53 pm
by Infocatcher
jsBeautifier.js
Improved tests: used warning or information icon, used results_raw() (without special <, >).
Posted: Sat Mar 19, 2011 8:47 pm
by KDJ
WordsMoveSelect.js
Changed: new script written completely from scratch.
Fixed: moving words at beginning and end of the line.
Added: moving up and down.
Posted: Sun Mar 20, 2011 12:10 am
by Infocatcher
converter-test.js
Improved regular expression for string literals detection (for convert escape sequences).
Added Ctrl+A hotkey.
getHash-test.js
Added hotkeys:
Ctrl+Z - Undo
Ctrl+Shift+Z - Redo
Ctrl+C, Ctrl+Insert - Copy hash
Ctrl+V, Shift+Insert - Paste
Ctrl+A - Select all
Improved speed of CRC32 calculation.
toggleComments-experimental.js
Improved regular expression for string literals detection.
Posted: Mon Mar 21, 2011 12:47 am
by cnnnc
Infocatcher,
measuresConverter.js have a wrong:
Posted: Mon Mar 21, 2011 2:41 am
by Infocatcher
cnnnc
Thanks, corrected.
Posted: Mon Mar 21, 2011 6:20 pm
by Infocatcher
Очень странно.
Делаю диалог с WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|
WS_THICKFRAME, как в SearchReplace.js. И получаю, что толщина рамки влияет на ширину окна – настраиваю на равные отступы в Win XP, а в Win 7 все едет.
Пока приделал бубен:
Code: Select all
var rcWnd = getWindowRect(hMainWnd); // просто функция уже была, там user32::GetWindowRect
var lpRect = AkelPad.MemAlloc(16); //sizeof(RECT)
if(!lpRect)
return;
oSys.Call("user32::GetClientRect", hMainWnd, lpRect);
var rcCln = parseRect(lpRect);
AkelPad.MemFree(lpRect);
var thickFrameFixW = (rcWnd.right - rcWnd.left) - (rcCln.right - rcCln.left) - 12; // 0 in my Windows 7
var thickFrameFixH = (rcWnd.bottom - rcWnd.top) - (rcCln.bottom - rcCln.top) - 50; // 0 in my Windows 7
var dlgMinW = 422 + thickFrameFixW;
var dlgMinH = 386 + thickFrameFixH;
Но как-то сама необходимость каких-то вычислений очень подозрительна.
Posted: Mon Mar 21, 2011 7:12 pm
by FeyFre
Infocatcher
1. GetClientRect всегда возвращает top = left = 0
2. Вы создаете окно или диалог? Диалогу при создании задаются логические размеры(кратные стандартному шрифту диалогов), а не физические пиксели.(Все остальные функции работают с физическими размерами). Я так подозреваю что работаете с окнами, тогда преобразовывать их нужно с помощью функции user32::MapDialogRect (которая в итоге сводится к тут уже используемому MulDiv, посмотрите в МСДН как)
3. Значит на сколько я понял, у Вас задача рассчитать размер окна так что-бы влезли все нужные элементы управления, и при это не съезжало при перестройке размеров в настройках винды? Значит Вам к функции user32::AdjustWindowRectEx , а не руцями считать.
(если я правильно понял суть проблемы)
Posted: Mon Mar 21, 2011 7:38 pm
by Infocatcher
jsBeautifier.js:
updated
FeyFre
Суть проблемы в том, что контролы при установке других настроек оформления (высота заголовка, толщина рамки окна) не влезают (или наоборот) в окно.
Делаю аналог
Code: Select all
//Create dialog
hWndDialog=oSys.Call("user32::CreateWindowEx" + _TCHAR,
0, //dwExStyle
pClassName, //lpClassName
0, //lpWindowName
0x90CE0000, //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME
ScaleX(0), //x
ScaleY(0), //y
ScaleX(392) + sizeNonClient.cx, //nWidth
ScaleY(200) + sizeNonClient.cy, //nHeight
hMainWnd, //hWndParent
0, //ID
hInstanceDLL, //hInstance
DialogCallback); //Script function callback. To use it class must be registered by WindowRegisterClass.
из SearchReplace.js.
В любом случая я уже вижу там + sizeNonClient.cx и + sizeNonClient.cy, которых, кажется, не было, когда я в прошлый раз утаскивал масштабирование.
С SearchReplace.js при этом все нормально, так что вопрос пока снимается – будет заимствовать.
P.S.
viewtopic.php?p=11642#p11642
Вот сразу бы признались, что нужна коррекция.

А то исправят по-тихому и молчат.
Posted: Mon Mar 21, 2011 9:50 pm
by Infocatcher
Ну вот, кажется, заработало. Теперь лучше не трогать.
converter-test.js
Added hotkeys:
Ctrl+X, Shift+Del – Cut
Delete – Delete selection
Auto action marked with «*».
Added selection of first changed char in preview field.
Dialog window now resizable.
getHash-test.js
Added hotkeys:
Ctrl+X, Shift+Del – Cut
Delete - Delete selection
crypt-test.js
goToLongestLine-test.js
measuresConverter-test.js
runScript-test.js
All:
Small code improvements.
Window borders and title now correctly calculated.
Posted: Mon Mar 21, 2011 9:57 pm
by FeyFre
Суть проблемы в том, что контролы при установке других настроек оформления (высота заголовка, толщина рамки окна) не влезают (или наоборот) в окно.
Вам сюда user32::AdjustWindowRectEx

Вы ей даете размер клиентской области(то место куда ложатся все дочерние окна) - она Вам размер окна, и Вы можете спокойно создавать. За Вами только рассчитать размер клиентской области.
Но в любом случае стоит обрабатывать WM_SIZE.
Posted: Wed Mar 23, 2011 8:53 pm
by Infocatcher
Эк главную форума уронили.

Увы, подходящих тем у меня в истории не нашлось.
Updated:
jsBeautifier.js