Page 20 of 96
Posted: Wed Feb 01, 2012 3:18 pm
by FeyFre
Instructor
Какраз ширина. Первый WM_SIZE который мне приходит, приходит с окном(точнее с клиентской областью) нулевых размеров(ширины точно, высоты - нужно вспомнить точно, но тоже по моему нулевая). Я как и положено пересчитываю новые координаты и размеры элементов, которые и получаются отрицательной ширины, и потому их не видно. Больше WM_SIZE с корректными размерами мне не приходит, только после того как пользователь дернет размер панельки мышкой(что уже поздно).
Posted: Wed Feb 01, 2012 3:27 pm
by Instructor
FeyFre
Попробую кодом донести мысль:
Code: Select all
//switch(_SIDE)
//{
// case DKS_LEFT:case DKS_RIGHT:break;
// default:_SIDE = DKS_RIGHT;WRITE_SETTINGS();break;
//}
//AkelPad.MemCopy(pDock + 8, DKF_OWNTHREAD|DKF_NODROPTOP|DKF_NODROPBOTTOM|/*DKF_FIXEDSIZE|*/DKF_DRAGDROP, DT_DWORD);
AkelPad.MemCopy(pDock + 8, DKF_OWNTHREAD|DKF_DRAGDROP, DT_DWORD);
Posted: Wed Feb 01, 2012 4:25 pm
by FeyFre
Instructor
Сделал так:
Code: Select all
/* switch(_SIDE)
{
case DKS_LEFT:case DKS_RIGHT:break;
default:_SIDE = DKS_RIGHT;WRITE_SETTINGS();break;
}*/
_SIDE = DKS_BOTTOM;
//AkelPad.MemCopy(pDock + 8, DKF_OWNTHREAD|DKF_NODROPTOP|DKF_NODROPBOTTOM|/*DKF_FIXEDSIZE|*/DKF_DRAGDROP, DT_DWORD);
AkelPad.MemCopy(pDock + 8, DKF_OWNTHREAD|DKF_DRAGDROP, DT_DWORD);
AkelPad.MemCopy(pDock + 16, _SIDE, DT_DWORD);
Первый запуск - норма. Закрыл.
Смотрю в History.ini
[Options]
WIDTH=0
BS=20
GAP=5
SIDE=4
ELSE=512
FULLDND=0
HK_RT=1114
HK_RA=1882
HK_SH=1608
HIDE=0
PS=0
DATA=
FILTER=
APPLY=0
Далее второй запуск - серая панелька, ибо формула ширины для всех элементов вида _W - *n*_BS-m*_GAP.

Posted: Thu Feb 02, 2012 9:22 pm
by VladSh
Infocatcher
Чуток по openFileIn.js.
Запилил такие настройки:
Code: Select all
"<HKCU\\Software\\Ghisler\\Total Commander\\InstallDir>\\TOTALCMD64.EXE",
"<HKCU\\Software\\Ghisler\\Total Commander\\InstallDir>\\TOTALCMD.EXE",
но не знаю, каким образом прописать (до < или после, или оно вообще для веток реестра не работает?), чтобы
?x64? работало (хотел указать его для первой строки из приведенного кода).
И ещё. Лучше бы appID давать всё-таки без пробелов и подчёркиваний, чтобы повысить "стрессоустойчивость".., а то неизвестно где, когда и что глюканёт.. Можно ли это подточить?
Добавлено:
Ещё хотелось бы задавать свой
-args в аргументах, так, например, для TC указано "/O /S /T %f", а я привык к "/O /T /L %f", и менять скрипт не хочется по понятным причинам..
Posted: Mon Feb 06, 2012 10:54 am
by Cuprum
VladSh
Может я что-то туплю, но после обновления до 4.7.3 не могу добиться выделения строки по горячей клавише. Использую selCompleteLine.js (4.6 (2011.12.06))
В окне "Скрипты" ему сопоставлено сочетание, но когда ставлю курсор на строку, нажимаю, ничего не происходит.
Posted: Mon Feb 06, 2012 12:27 pm
by Infocatcher
Что-то я отвлекся.
VladSh wrote:но не знаю, каким образом прописать (до < или после, или оно вообще для веток реестра не работает?), чтобы ?x64? работало
?x64? и ?x86? надо дописывать в самое начало пути.
VladSh wrote:И ещё. Лучше бы appID давать всё-таки без пробелов и подчёркиваний, чтобы повысить "стрессоустойчивость".., а то неизвестно где, когда и что глюканёт.. Можно ли это подточить?
А есть ли особый смысл? Если глюкнет передача аргументов, то скажется это явно не на одном скрипте.
VladSh wrote:Ещё хотелось бы задавать свой -args в аргументах, так, например, для TC указано "/O /S /T %f", а я привык к "/O /T /L %f", и менять скрипт не хочется по понятным причинам..
И чем это будет принципиально отличаться от
Code: Select all
appsData["Total Commander"].args = "/O /T /L %f";
в openFileIn-options.js
Posted: Mon Feb 06, 2012 3:20 pm
by Instructor
FeyFre wrote:WIDTH=0
Подобной проблемы не наблюдаю. Возможно стоит удалить History.ini.
Posted: Mon Feb 06, 2012 3:57 pm
by FeyFre
Instructor
Эту проблему как-то получилось обойти(WM_SIZE чуть по другому обрабатываю. Дело в том, что первый WM_SIZE приходит очень рано - окно ещё имеет нулевой размер), НО. Теперь почему-то всплыло взаимное перерисовывание(вкладка рисуется поверх детей панельки, было когда-то такое), но я ещё откатаю-перепроверю, ибо на лету не понятно, виновен ли релиз 4.7.3, или я где-то лажанулся.
Posted: Mon Feb 06, 2012 4:54 pm
by VladSh
Cuprum
У меня работает:
Code: Select all
if (! AkelPad.Include("selCompleteLine.js")) WScript.Quit();
selCompleteLine(AkelPad.GetSelStart(), AkelPad.GetSelEnd());
Такой вариант тоже:
Code: Select all
-"Выделить \r{...}\r" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="\r" -tagEnd="\r" -inclTags=0`)
Но оно всё выделяет текст настоящей строки (ограниченной символами \r), а не видимой в окне проги.
Infocatcher wrote:А есть ли особый смысл? Если глюкнет передача аргументов, то скажется это явно не на одном скрипте.
Ещё и даблкликом удобно выделять и копировать.
Infocatcher wrote:И чем это будет принципиально отличаться от
Тем, что скрипт не надо будет анализировать на изменения, если его отредактировал автор, - просто закинул новую версию и всё.
Infocatcher wrote:openFileIn-options.js
openFileIn.js видел, openFileIn-test.js видел, а такого зверя пока не встречал).
Posted: Mon Feb 06, 2012 5:52 pm
by Cuprum
VladSh
Спасибо, разобрался. Как-то не заметил, что selCompleteLine.js должен быть помещен в папку Include
Posted: Mon Feb 06, 2012 7:33 pm
by FeyFre
но я ещё откатаю-перепроверю, ибо на лету не понятно, виновен ли релиз 4.7.3, или я где-то лажанулся.
Подтверждаю. Чистый дистрбутив 4.7.2 против 4.7.3. Добавляю history.js v0.9 (последняя) + зависимость.
Режим PMDI/MDI(и даже SDI)
Активирую скрипт.
Перетягиваю вправо или влево край панельки, можно на чуть-чуть.
На кнопочках закрыть/свернуть замечаю мусор: например кусочек закладки, либо следы старой отрисовки этих же кнопок. Это в 4.7.3. В 4.7.2 всё нормально.
Posted: Mon Feb 06, 2012 8:00 pm
by Infocatcher
VladSh wrote:Infocatcher wrote:openFileIn-options.js
openFileIn.js видел, openFileIn-test.js видел, а такого зверя пока не встречал).
Вот тут было.
Code: Select all
var optionsPath = WScript.ScriptFullName.replace(/(\.[^.]+)?$/, "-options$&");
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.FileExists(optionsPath))
eval(AkelPad.ReadFile(optionsPath));
Posted: Tue Feb 07, 2012 8:33 am
by VladSh
Infocatcher wrote:Вот тут было.
Не обратил внимания, т.к. эта штука опциональная, и делает её каждый под себя, т.е. при любом изменении скрипта автором придётся сравнивать dif'ы.
Posted: Tue Feb 07, 2012 10:50 am
by Infocatcher
VladSh
Ну, там можно вообще все настройки переписать.
Я смотрю, все идет к отдельному файлу настроек.

Но и с ним придется посматривать на случай изменения формата, если уж на то пошло.
Posted: Tue Feb 07, 2012 12:00 pm
by Instructor
FeyFre wrote:Перетягиваю вправо или влево край панельки, можно на чуть-чуть.
На кнопочках закрыть/свернуть замечаю мусор: например кусочек закладки, либо следы старой отрисовки этих же кнопок. Это в 4.7.3. В 4.7.2 всё нормально.
В 4.7.3:
AkelDLL.h wrote:AKD_SETBUTTONDRAW
_________________
Draw icon or bitmap on button.
(HWND)wParam == button handle. Button must have BS_OWNERDRAW style.
(BUTTONDRAW *)lParam == pointer to a BUTTONDRAW structure. If NULL, button draw processing will be removed.