Scripts discussion (2)
- Author
- Message
-
Offline
- Posts: 88
- Joined: Sun Jun 03, 2012 8:15 am
Instructor
Случайно выбрал bold, начал переключать, он так жирным и остается. А если в последней строке
AkelPad.Font(lpFontList[0], 0, lpFontList[1]);
0 на 1 заменить, то универсальность идеи теряется. Может еще ввести параметр типа(жирный, косой, без изменений и тп)? Не сочтите что я обнаглел, просто мысли)) Мне и первый вариант нравился.
Случайно выбрал bold, начал переключать, он так жирным и остается. А если в последней строке
AkelPad.Font(lpFontList[0], 0, lpFontList[1]);
0 на 1 заменить, то универсальность идеи теряется. Может еще ввести параметр типа(жирный, косой, без изменений и тп)? Не сочтите что я обнаглел, просто мысли)) Мне и первый вариант нравился.
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Можно как-нибудь починить возможность доступа к глобальному объекту?
Выдает
Полезно при создании библиотек или использовании чужого кода с кучей глобальных переменных.
Как-то так:
Code: Select all
var global = this;
global.x = {};
WScript.Echo(x);
А если запустить через wscript.exe, то работает.Ошибка: Объект не поддерживает это свойство или метод
Код: 800A01B6
Источник: Ошибка выполнения Microsoft JScript
Полезно при создании библиотек или использовании чужого кода с кучей глобальных переменных.
Как-то так:
Code: Select all
(function() {
var foo = 1;
var bar = 2;
this.f = function() {
return foo + bar;
}
})();
WScript.Echo(f());
WScript.Echo(typeof foo); // "undefined"
-
Offline
- Posts: 88
- Joined: Sun Jun 03, 2012 8:15 am
KDJ
Глюк исчез в режиме "развернуть на весь экран", но остался в режиме "полный экран".
Instructor
А как получить FontType из Akelpad, ну подобно как вы брали
pFontName=AkelPad.MemRead(lpLogFont + 28 /*offsetof(LOGFONTW, lfFaceName)*/, 1 /*DT_UNICODE*/);
nFontSize=AkelPad.SendMessage(hWndEdit, 3188 /*AEM_GETCHARSIZE*/, 3 /*AECS_POINTSIZE*/, 0);
Не дает мне покоя этот вопрос))
Глюк исчез в режиме "развернуть на весь экран", но остался в режиме "полный экран".
Instructor
А как получить FontType из Akelpad, ну подобно как вы брали
pFontName=AkelPad.MemRead(lpLogFont + 28 /*offsetof(LOGFONTW, lfFaceName)*/, 1 /*DT_UNICODE*/);
nFontSize=AkelPad.SendMessage(hWndEdit, 3188 /*AEM_GETCHARSIZE*/, 3 /*AECS_POINTSIZE*/, 0);
Не дает мне покоя этот вопрос))
-
Offline
- Posts: 88
- Joined: Sun Jun 03, 2012 8:15 am
KDJ
А, я понял. Глюк остался как был, но зависит от того, на каком мониторе раскрывать на полный экран. У меня два, 2-ой главный, на нем глюк отображения и происходит при раскрытии на поный экран или развороте на весь экран(после применения вашего скрипта). А на 1-м не главном мониторе растягивается на весь экран нормально, а в полноэкранный режим вообще не переходит, Akelpad ведь не поддерживает пока мультимонитор.
А вообще, ваш вариант интересен тем, что при больших списках шрифтов может дать большую производительность. Вариант Инструктора каждый раз перебирает список, а ваш каждый раз пишет на диск. При малом списке перебор в разы быстрее записи.
А, я понял. Глюк остался как был, но зависит от того, на каком мониторе раскрывать на полный экран. У меня два, 2-ой главный, на нем глюк отображения и происходит при раскрытии на поный экран или развороте на весь экран(после применения вашего скрипта). А на 1-м не главном мониторе растягивается на весь экран нормально, а в полноэкранный режим вообще не переходит, Akelpad ведь не поддерживает пока мультимонитор.
А вообще, ваш вариант интересен тем, что при больших списках шрифтов может дать большую производительность. Вариант Инструктора каждый раз перебирает список, а ваш каждый раз пишет на диск. При малом списке перебор в разы быстрее записи.
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
FontType can be read from lpLogFont structure:Visitor7 wrote:...
А как получить FontType из Akelpad, ну подобно как вы брали
pFontName=AkelPad.MemRead(lpLogFont + 28 /*offsetof(LOGFONTW, lfFaceName)*/, 1 /*DT_UNICODE*/);
...
Code: Select all
var nWeight = AkelPad.MemRead(lpLogFont + 16 /*offsetof(LOGFONTW, lfWeight)*/, 3 /*DT_DWORD*/);
var bItalic = AkelPad.MemRead(lpLogFont + 20 /*offsetof(LOGFONTW, lfItalic)*/, 5 /*DT_BYTE*/);
var nFontType;
if (nWeight < 600)
nFontType = 1;
else
nFontType = 2;
if (bItalic)
nFontType += 2;
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
VladSh
Oh, yes. I made two versions:
FontCycleSwitch.js
FontCycleSwitch_PerverseCode.js
viewtopic.php?p=18299&hilit=#p18299
Oh, yes. I made two versions:
FontCycleSwitch.js
FontCycleSwitch_PerverseCode.js
viewtopic.php?p=18299&hilit=#p18299
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
ChooseFont_function.js
Changed: now dialog box is centered in parent window.
Changed: now dialog box is centered in parent window.
-
Offline
- Posts: 88
- Joined: Sun Jun 03, 2012 8:15 am
KDJ
Спасибо, как-то так сделал, вроде все работает:
Я был не прав, это не ваш скрипт глючил, а функция Akelpad перерисовки экрана при смене шрифта.
Назначаю горячие клавиши:
Font 1 --- Font("Courier New", 1, 8 ) --- Alt+1
Font 2 --- Font("Arial", 1, 17) ------------ Alt+2
Разрешение монитора 1024x768, Akelpad развернут на полный экран, перенос по словам включен(с выключенным нормально). Раскрытый в Akelpad текст:
После нескольких нажатий на Alt+1, Alt+2, Alt+1, Alt+2, Alt+1, Alt+2.... получаю на экране такой результат:
Картинка.
Спасибо, как-то так сделал, вроде все работает:
Я был не прав, это не ваш скрипт глючил, а функция Akelpad перерисовки экрана при смене шрифта.
Назначаю горячие клавиши:
Font 1 --- Font("Courier New", 1, 8 ) --- Alt+1
Font 2 --- Font("Arial", 1, 17) ------------ Alt+2
Разрешение монитора 1024x768, Akelpad развернут на полный экран, перенос по словам включен(с выключенным нормально). Раскрытый в Akelpad текст:
После нескольких нажатий на Alt+1, Alt+2, Alt+1, Alt+2, Alt+1, Alt+2.... получаю на экране такой результат:
Картинка.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
KDJ
I meant to store it:so that the user did not change the script, and changed the configuration file.
I meant to store it:
Code: Select all
"Courier New", 0, 11
"MS Sans Serif", 1, 17
"Tahoma", 2, 9
"Lucida Console", 3, 12
"Arial", 4, 15
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
VladSh
That may be so: FontCycleSwitch.js
That may be so: FontCycleSwitch.js