Page 64 of 97

Posted: Sat Feb 26, 2011 7:19 pm
by Infocatcher
Instructor wrote:Масштабно :) Почему не в "Scripts collection"?
Опасаюсь неотловленных сюрпризов. :) Так что лучше подождать.

P.S. А еще мне было лень вникать в безумие с фунтамине только с ними).

Posted: Sat Feb 26, 2011 7:29 pm
by se7h
Infocatcher
Шрифт стандартный Arial

если что, в редакторе всё ок, индексы видны как надо

Posted: Sat Feb 26, 2011 9:53 pm
by Infocatcher
se7h wrote:Шрифт стандартный Arial
А разве по умолчанию в диалогах Arial?
Опасаюсь неотловленных сюрпризов. :)
А вот и первый – подхватывалось любое выделение, а не только выражения, вычисляющиеся в числа.
Плюс добавил хоткеи для переключения.
measuresConverter.js
Но с хоткеями странный баг. Стоит один раз выбрать radiobutton мышкой, как хоткеи перестают работать (точнее, срабатывают один раз, а потом перестают).

Это помимо того, что с переключением по хоткеям могут быть сюрпризы безотносительно к этому багу. Но хоткеи можно просто не трогать. :D

[Upd]
Так, подправил, но не то. :)
Кажется, что-то не так с выбором целевой величины. :?

[Upd – 2]
А, понял. Я отключаю окно с фокусом.
http://www.transl-gunsmoker.ru/2009/06/ ... st_07.html
А ведь читал, давно еще. :)

Posted: Sat Feb 26, 2011 10:45 pm
by se7h
Infocatcher
условия задачи:
1. в AP выбран Arial, открыт скрипт, индексы отображаются без проблем
2. в WinXP тема NOOTOR, Arial по умолчанию, но циферки не наблюдаются

вопрос:
почему?

Posted: Sun Feb 27, 2011 11:54 am
by Instructor
KDJ
AlignJustify.js works not as expected when word wrap is on. It can be implemented if lines will be retrieved with EM_GETLINE or directly with AECHARINDEX->lpLine->wpLine.

Posted: Sun Feb 27, 2011 3:49 pm
by KDJ
Instructor wrote:AlignJustify.js works not as expected when word wrap is on.
It is intended to operate with wordwrap off.
The idea is, to make it was independent of window width and font size.
Perhaps we should insert end-of-line characters in the wrapped lines (Format::LineFixWrap).

Posted: Sun Feb 27, 2011 6:20 pm
by KDJ
I have found interesting.
The following code generates a runtime error in 8 line (Code: 800A1389).

Code: Select all

var hMainWnd = AkelPad.GetMainWnd();
var aStr = "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ".split("");
aStr.sort(SortFun);
function SortFun(e1, e2) {
  var nRes = 0;
  e1 = e1.toUpperCase();
  e2 = e2.toUpperCase();
  if (e1 > e2)
    nRes = 1;
  else if (e1 < e2)
    nRes = -1;
  return nRes; }
If you remove the first line, it works properly.
Is this a bug JScript?

Posted: Sun Feb 27, 2011 8:40 pm
by Infocatcher
KDJ
With

Code: Select all

WScript.Echo(aStr.sort(SortFun));
same error happens.


Обнаружил http://code.google.com/intl/en/apis/adw ... rency.html (пример запроса).
Но при кэшировании данных из-за двойного преобразования через базовую валюту теряется и так не особо высокая точность. Так что можно получить ошибку округления.
И надо что-то делать с высотой списка. Например, сделать combobox'ом. Но это пока лень.
Еще надоело перемещение целевой величины при выборе такой же исходной. Так что для двух вариантов поможет только кнопка «<=>» или Ctrl+U.
measuresConverter.js


[Upd]

Code: Select all

var aStr = "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ".split("");
var ret = [];
for(var i = 0, l = aStr.length; i < l; i++)
	if(typeof aStr[i] != "string")
		ret.push(i + "=" + aStr[i] + " " + typeof aStr[i]);
WScript.Echo(ret.length && ret.join("\n")); // 0

Code: Select all

var aStr = "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ".split("");
WScript.Echo(aStr.sort(SortFun));
function SortFun(e1, e2) {
  var nRes = 0;
  e1 = e1.toUpperCase();
  e2 = e2.toUpperCase();
  try {
  if (e1 > e2)
    nRes = 1;
  else if (e1 < e2)
    nRes = -1;
  } catch(e) { WScript.Echo(typeof e1); } // "unknown"
  return nRes; }

Code: Select all

var aStr = "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ".split("");
WScript.Echo(aStr.sort(SortFun));
function SortFun(e1, e2) {
  var nRes = 0;
  e1 = e1.toUpperCase();
  if(typeof e1 != "string") // Doesn't happens
    WScript.Echo(e1 + " -> " + typeof e1);
  e2 = e2.toUpperCase();
  try {
  if (e1 > e2)
    nRes = 1;
  else if (e1 < e2)
    nRes = -1;
  } catch(e) { WScript.Echo(typeof e1); } // Doesn't happens
  return nRes; }
Fix:

Code: Select all

e1 = e1.toUpperCase() + "";
Very strange.

Posted: Sun Feb 27, 2011 9:29 pm
by KDJ
Infocatcher
Thanks for your interest in the problem.
I did it like this:

Code: Select all

var hMainWnd = AkelPad.GetMainWnd();
var aStr = "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ".split("");
aStr.sort(SortFun);
function SortFun(e1, e2) {
  var nRes = 0;
//  e1 = e1.toUpperCase();
//  e2 = e2.toUpperCase();
  if (e1.toUpperCase() > e2.toUpperCase())
    nRes = 1;
  else if (e1.toUpperCase() < e2.toUpperCase())
    nRes = -1;
  return nRes; }

Posted: Mon Feb 28, 2011 12:56 am
by Infocatcher
measuresConverter-test.js
<del>Теперь совсем тестовая.</del>
Теперь с ListBox'ами.
CheckBox'ы пока живы (аргумент -maxHeight), жалко их – больно возни с ними много было.
И теперь можно выделить одинаковые величины слева и справа. Ну да ладно.

Posted: Mon Feb 28, 2011 5:20 pm
by Infocatcher
backupVersion.js
Изменен диалог запроса перезаписи файла – теперь у него три кнопки: да (перезаписать), нет (не перезаписывать и ввести другое имя) и отмена.
И теперь снова всегда показывается сообщение об успешном копировании файла. :)

measuresConverter-test.js
Исправлен хак для устранения ошибок округления.
Добавлено запоминание выбранных величин раздельно по типам.

Posted: Mon Feb 28, 2011 7:59 pm
by KDJ
Infocatcher
measuresConverter.js is very good. Especially I like the currency.
It seems to me, that in the units of speed is a little mistake.
Knot it is a nautical mile per hour, ie 1.852 km/h.
And as we are already at sea, you can add the cable length = 1/10 nautical mile.

Posted: Mon Feb 28, 2011 9:49 pm
by FeyFre
Не знаю в чем было дело, но в measuresConverter.js 1т = 100 кг, но в measuresConverter-test.js уже исправили 1т = 1000кг. Поройтесь, возможно там ещё подобные баги есть.

Posted: Mon Feb 28, 2011 11:03 pm
by Infocatcher
KDJ wrote:Knot it is a nautical mile per hour, ie 1.852 km/h.
Thanks, fixed.
KDJ wrote:And as we are already at sea, you can add the cable length = 1/10 nautical mile.
Added.
FeyFre wrote:Не знаю в чем было дело, но в measuresConverter.js 1т = 100 кг, но в measuresConverter-test.js уже исправили 1т = 1000кг.
Было дело, исправлял. А все потому, что часть данных бралась из головы. Так что
FeyFre wrote:возможно там ещё подобные баги есть
Особенно в районе единиц измерения со степенями (квадраты, кубы).

measuresConverter.js

Posted: Tue Mar 01, 2011 6:46 pm
by KDJ
In InsertTextLN.js added: "Replace selection" button.