AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Ввод символов через Alt+####

 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Wed Apr 10, 2013 6:47 am    Post subject: Ввод символов через Alt+#### Reply with quote

Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду?
Back to top
View user's profile Send private message
TNX



Joined: 12 Jul 2012
Posts: 42

PostPosted: Wed Apr 10, 2013 3:15 pm    Post subject: Reply with quote

Будьте добры, конкретный пример в студию Cool

Last edited by TNX on Wed Apr 10, 2013 6:37 pm; edited 1 time in total
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Wed Apr 10, 2013 3:48 pm    Post subject: Reply with quote

Ради бога:
U+0152 (dec 0338) имеет код Alt+0140
U+0153 (dec 0339) имеет код Alt+0156 (wtf??)
U+0154 (dec 0340) не имеет Alt кода вообще

В Акеле попытка ввести через альт Юникод-коды этих символов приводят к вставке букв R,S,T. Вставка по указанным альт-кодам работает так, как задумал микрософт. В то же время, в Word, например, оба варианта приводят к одинаковым результатам (что, однако, тоже неправильно - как в таком случае вводить U+008C (dec 0140)?)
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5396

PostPosted: Wed Apr 10, 2013 4:51 pm    Post subject: Reply with quote

Fr0sT wrote:
U+0152 (dec 0338) имеет код Alt+0140
Для совместимости используется стандартная обработка для Alt+NumPad. AkelEdit поддерживает специальную обработку ввода символа по десятиричному коду, посредством предварительного нажатия два раза на 0. Т.е. для указанного символа необходимо ввести Alt+00338.
Back to top
View user's profile Send private message Send e-mail
TNX



Joined: 12 Jul 2012
Posts: 42

PostPosted: Wed Apr 10, 2013 5:57 pm    Post subject: Reply with quote

Добавлю, что с префиксом 0 вводятся символы из набора "Windows: западные" (коды 1-255). Если набирать сразу код без предшествующего 0, то используется набор символов "DOS: кириллица 2" (коды 1-255). Префикс 00 - для ввода символов из набора "Юникод" (коды U+).
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Thu Apr 11, 2013 6:20 am    Post subject: Reply with quote

Ага! Вот и докопались до истины. Хорошо бы эту фичу в справку куда-нибудь. Попробуем, спасибо!
TNX
во-во, это я и называю "микрософтовое безумие".
Back to top
View user's profile Send private message
TNX



Joined: 12 Jul 2012
Posts: 42

PostPosted: Thu Apr 11, 2013 7:30 am    Post subject: Reply with quote

Fr0sT, это сделано для совместимости с предыдущими версиями ОС, а точнее для корректной работы старого ПО. Ну и пользователи привыкли уже к такой системе, хотя она и несовершенна.
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Thu Apr 11, 2013 10:45 am    Post subject: Reply with quote

TNX, мне как пользователю однохренственно, по каким причинам эти костыли тянутся в течение десятков лет. Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769)

upd Это я про Виндуза, а не про Акель
Back to top
View user's profile Send private message
TNX



Joined: 12 Jul 2012
Posts: 42

PostPosted: Thu Apr 11, 2013 12:08 pm    Post subject: Reply with quote

Fr0sT wrote:
Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769)

Открою вам небольшой секрет: такой способ существует Shocked
Quote:
HKEY_CURRENT_USER\Control Panel\Input Method

Создаем параметр EnableHexNumpad типа REG_SZ со значением 1. Не забываем перезагрузиться. В Блокноте набираем Alt + +301 и получаем символ ударе́ния.
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Thu Apr 11, 2013 1:05 pm    Post subject: Reply with quote

Как много интересного открывается Smile Благодарю!
Back to top
View user's profile Send private message
Egorkaru



Joined: 22 Mar 2013
Posts: 73
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Jan 13, 2014 9:05 am    Post subject: Re: Ввод символов через Alt+#### Reply with quote

Fr0sT wrote:
Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду?

1. Запустите редактор реестра. Для этого нажмите сочетание клавиш Win+R, введите regedit и нажмите ОК или Enter.
2. Откройте раздел реестра HKEY_CURRENT_USER\Control Panel\Input Method.
3. Создайте строковый параметр EnableHexNumpad со значением 1.
4. Перезагрузите компьютер.
5. После перезагрузки компьютера запустите AkelPad, зажмите клавишу Alt, нажмите клавишу + и введите Юникод-код символа. Например, при вводе белого смайлика зажмите клавишу Alt, нажмите клавишу + и введите 263A.
Back to top
View user's profile Send private message Send e-mail
temp1111



Joined: 26 Aug 2008
Posts: 49

PostPosted: Tue Feb 04, 2014 5:45 pm    Post subject: Reply with quote

А напишите кто-нибудь скрипт Egorkaru.js, чтобы он автоматически с русского на русский переводил Very Happy Very Happy Very Happy
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group