On-line: Andrey, Dr. Oldwarez, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 6
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 16.06.09 10:51. Заголовок: ALT_русские буквы и PAD_5 в gtwin (xHarbour 1.0.0)


Подключил ALT_Русские буквы и PAD (K_PAD_5 332 // PAD5) в gtwin xHarbour 1.0.0. Может быть кому-то пригодится.

1.Добавляем коды клавиш
#define CLIP_STDKEY_COUNT 160 // вместо 96

В
static const ClipKeyCode stdKeyTab[CLIP_STDKEY_COUNT] = {

добавляем коды

{128, K_ALT_F, K_CTRL_F, 0, K_ALT_F}, // 'А'
{129, 0, 0, 0, 0}, // 'Б'
{130, K_ALT_D, K_CTRL_D, 0, K_ALT_D}, // 'В'
{131, K_ALT_U, K_CTRL_U, 0, K_ALT_U}, // 'Г'
{132, K_ALT_L, K_CTRL_L, 0, K_ALT_L}, // 'Д'
{133, K_ALT_T, K_CTRL_T, 0, K_ALT_T}, // 'Е'
{134, 0, 0, 0, 0}, // 'Ж'
{135, K_ALT_P, K_CTRL_P, 0, K_ALT_P}, // 'З'
{136, K_ALT_B, K_CTRL_B, 0, K_ALT_B}, // 'И'
{137, K_ALT_Q, K_CTRL_Q, 0, K_ALT_Q}, // 'Й'
{138, K_ALT_R, K_CTRL_R, 0, K_ALT_R}, // 'К'
{139, K_ALT_K, K_CTRL_K, 0, K_ALT_K}, // 'Л'
{140, K_ALT_V, K_CTRL_V, 0, K_ALT_V}, // 'М'
{141, K_ALT_Y, K_CTRL_Y, 0, K_ALT_Y}, // 'Н'
{142, K_ALT_J, K_CTRL_J, 0, K_ALT_J}, // 'О'
{143, K_ALT_G, K_CTRL_G, 0, K_ALT_G}, // 'П'
{144, K_ALT_H, K_CTRL_H, 0, K_ALT_H}, // 'Р'
{145, K_ALT_C, K_CTRL_C, 0, K_ALT_C}, // 'С'
{146, K_ALT_N, K_CTRL_N, 0, K_ALT_N}, // 'Т'
{147, K_ALT_E, K_CTRL_E, 0, K_ALT_E}, // 'У'
{148, K_ALT_A, K_CTRL_A, 0, K_ALT_A}, // 'Ф'
{149, 282, 27, 0, 0}, // 'Х'
{150, K_ALT_W, K_CTRL_W, 0, K_ALT_W}, // 'Ц'
{151, K_ALT_X, K_CTRL_X, 0, K_ALT_X}, // 'Ч'
{152, K_ALT_I, K_CTRL_I, 0, K_ALT_I}, // 'Ш'
{153, K_ALT_O, K_CTRL_O, 0, K_ALT_O}, // 'Щ'
{154, 283, 29, 0, 0}, // 'Ъ'
{155, K_ALT_S, K_CTRL_S, 0, K_ALT_S}, // 'Ы'
{156, K_ALT_M, K_CTRL_M, 0, K_ALT_M}, // 'Ь'
{157, 0, 0, 0, 0}, // 'Э'
{158, 0, 0, 0, 0}, // 'Ю'
{159, K_ALT_Z, K_CTRL_Z, 0, K_ALT_Z}, // 'Я'
{160, K_ALT_F, K_CTRL_F, 0, K_ALT_F}, // 'а'
{161, 0, 0, 0, 0}, // 'б'
{162, K_ALT_D, K_CTRL_D, 0, K_ALT_D}, // 'в'
{163, K_ALT_U, K_CTRL_U, 0, K_ALT_U}, // 'г'
{164, K_ALT_L, K_CTRL_L, 0, K_ALT_L}, // 'д'
{165, K_ALT_T, K_CTRL_T, 0, K_ALT_T}, // 'е'
{166, 0, 0, 0, 0}, // 'ж'
{167, K_ALT_P, K_CTRL_P, 0, K_ALT_P}, // 'з'
{168, K_ALT_B, K_CTRL_B, 0, K_ALT_B}, // 'и'
{169, K_ALT_Q, K_CTRL_Q, 0, K_ALT_Q}, // 'й'
{170, K_ALT_R, K_CTRL_R, 0, K_ALT_R}, // 'к'
{171, K_ALT_K, K_CTRL_K, 0, K_ALT_K}, // 'л'
{172, K_ALT_V, K_CTRL_V, 0, K_ALT_V}, // 'м'
{173, K_ALT_Y, K_CTRL_Y, 0, K_ALT_Y}, // 'н'
{174, K_ALT_J, K_CTRL_J, 0, K_ALT_J}, // 'о'
{175, K_ALT_G, K_CTRL_G, 0, K_ALT_G}, // 'п'
{224, K_ALT_H, K_CTRL_H, 0, K_ALT_H}, // 'р'
{225, K_ALT_C, K_CTRL_C, 0, K_ALT_C}, // 'с'
{226, K_ALT_N, K_CTRL_N, 0, K_ALT_N}, // 'т'
{227, K_ALT_E, K_CTRL_E, 0, K_ALT_E}, // 'у'
{228, K_ALT_A, K_CTRL_A, 0, K_ALT_A}, // 'ф'
{229, 282, 27, 0, 0}, // 'х'
{230, K_ALT_W, K_CTRL_W, 0, K_ALT_W}, // 'ц'
{231, K_ALT_X, K_CTRL_X, 0, K_ALT_X}, // 'ч'
{232, K_ALT_I, K_CTRL_I, 0, K_ALT_I}, // 'ш'
{233, K_ALT_O, K_CTRL_O, 0, K_ALT_O}, // 'щ'
{234, 283, 29, 0, 0}, // 'ъ'
{235, K_ALT_S, K_CTRL_S, 0, K_ALT_S}, // 'ы'
{236, K_ALT_M, K_CTRL_M, 0, K_ALT_M}, // 'ь'
{237, 0, 0, 0, 0}, // 'э'
{238, 0, 0, 0, 0}, // 'ю'
{239, K_ALT_Z, K_CTRL_Z, 0, K_ALT_Z}, // 'я'


после
else if ( ch < 0 ) // international keys
{
ch += 256;
Добавляем
if (ch>223)
{
clipKey = &stdKeyTab[ ch - K_SPACE-48];
}
else
{
clipKey = &stdKeyTab[ ch - K_SPACE];
}
}
2.Для подключения K_PAD в функцию
int HB_GT_FUNC(gt_ReadKey( HB_inkey_enum eventmask ))

преред
if ( s_bSpecialKeyHandling &&
( dwState & CAPSLOCK_ON ) &&
s_osv.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS )
{
вставляем строки

if (wKey==76 & s_irInBuf[ s_cNumIndex ].Event.KeyEvent.wVirtualKeyCode==12)
{
ch=332;
}




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


постоянный участник




Пост N: 872
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.09 11:46. Заголовок: Хоть бы пример дал г..


Хоть бы пример дал где это использовать .....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 16.06.09 12:02. Заголовок: У меня PAD используе..


У меня PAD используется для настройки размера колонки (ячейки) таблицы по горизонтали и вертикали в несколько строк с переносом, очень удобно. А с ALT все понятно - реально у меня задействованы все комбинации букв с ALT (например ALT_P -печать). Практичеки все строки меню задублированы комбинацией клавиш. Приходится все время переключать на аглийский шрифт. Неудобно ведь.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 349
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 16.06.09 20:46. Заголовок: a_sidorov пишет: По..


a_sidorov пишет:

 цитата:
Подключил ALT_Русские буквы


А не будет ли так любезен многоуважаемый джинн... прислать готовый GTWIN.OBJ ?

А то я при компиляции имеющегося у меня GTWIN.C с внесёнными см. выше изменениями получаю:

Error E2451 GTWIN.C 1606: Undefined symbol 'hb_cdp_page' in function hb_gt_win_SetDispCP
Error E2451 GTWIN.C 1648: Undefined symbol 'hb_cdp_page' in function hb_gt_win_SetKeyCP
Warning W8075 GTWIN.C 1887: Suspicious pointer conversion in function hb_gt_FuncInit
Warning W8075 GTWIN.C 1893: Suspicious pointer conversion in function hb_gt_FuncInit
Warning W8075 GTWIN.C 1894: Suspicious pointer conversion in function hb_gt_FuncInit
*** 2 errors in Compile ***

Моё мыло aynn [at] li.ru

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 17.06.09 09:30. Заголовок: Отправил. Понятно, п..


Отправил. Понятно, почему в этой версии gtwin нет раскладки национальных клавиатур под ALT. Принципиально кодировка сделана на таблице и она своя под каждый язык. Ее нужно добавлять вручную под русские буквы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 873
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.09 11:22. Заголовок: a_sidorov пишет: Ее..


a_sidorov пишет:

 цитата:
Ее нужно добавлять вручную под русские буквы.



А почему ее нельзя сделать переключением кодовых страниц в исходниках ?
Но наверно это вопрос к нашим админам !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 17.06.09 11:39. Заголовок: Так как написан драй..


Так как написан драйвер сейчас, в исходниках нужно забить все национальные кодовые станицы на разных языках. Если бы анализировался скан код клавиши, это можно было бы сделать независимо от кода страницы. Можно попробовать в драйвер вставить перекодировку по скан коду (можно сослаться на ту же таблицу с раскладки для латиницы), только зачем нам это нужно, мы же не собираемся писать, например, для украинской раскладки. Вставили коды русских букв и забыли о проблеме.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 350
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 19.06.09 07:46. Заголовок: Александр, спасибо! ..


Александр, спасибо!
В исправленной тобой версии GTWIN от xHarbour 1.2.0 вроде всё работает!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 10
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 19.06.09 09:07. Заголовок: В gtwin для Xharbour..


В gtwin для Xharbour 1.2.0 правки те же, что и для 1.1.0. Я тоже поставил версию с исправленной gtwin пользователям, пока замечаний нет, вроде все работает.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 119
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет