Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];

Вниз

Клавиатура   Найти похожие ветки 

 
BAY   (2002-07-12 15:44) [0]

Можно как нибудь определить по латинской букве, какая на той-же клавише русская и наоборот, не набивая массив.


 
Kaban   (2002-07-12 15:46) [1]

класс, нет точно пора клюкву вводить


 
Viewer   (2002-07-12 15:50) [2]

Собственно, что написано на клавишах - то системе не известно.
Так, что скан код один и тот же.
Раскладка определяется через ActivateKeyboardLayout


 
Eugene Lachinov   (2002-07-12 15:53) [3]

function TranslateChar(Ch : Char; UpperCase : Boolean) : Char;
const
TranslateChars : array[#65..#90] of char =
("Ф", "И", "С", "В", "У", "А", "П", "Р", "Ш", "О", "Л", "Д", "Ь", "Т",
"Щ", "З", "Й", "К", "Ы", "Е", "Г", "М", "Ц", "Ч", "Н", "Я");
begin
case Ch of
#34, #39 : Result := "Э";
#58, #59 : Result := "Ж";
#44, #60 : Result := "Б";
#46, #62 : Result := "Ю";
#91, #123 : Result := "Х";
#93, #125 : Result := "Ъ";
#65..#90 : Result := TranslateChars[Ch];
#97..#122 : begin
Result := TranslateChars[Char(Byte(Ch)- 32)];
if not UpperCase then
Result := Char(Byte(Result) + 32)
end;
#224..#255 : if UpperCase then
Result := Char(Byte(Ch)- 32)
else
Result := Ch
else
Result := Ch
end
end;


 
Eugene Lachinov   (2002-07-12 15:56) [4]

Что-то тут странное написано, но видимо хватало :)


 
BAY   (2002-07-12 16:16) [5]

>>Собственно, что написано на клавишах - то системе не известно.
>>Так, что скан код один и тот же.
Ну это и ежу понятно

>>Раскладка определяется через ActivateKeyboardLayout
А вот это то, что нужно :)


 
BAY   (2002-07-12 16:17) [6]

>>Eugene Lachinov
не набивая массив.


 
Malder   (2002-07-12 17:04) [7]

Позволю себе вмешаться.

Можно как нибудь определить по латинской букве, какая на той-же клавише русская

это невохможно сделать, даже набивая массив. Так как вы, вероятно, привыкли к обычной раскладке клавиатуры. Но есть же и другие варианты, например, Дворака (точно не помню).
И вообще не факт, что в последствии соответствия между русскими-английскаи буквами не будет исправлено (навряд ли, конечно).


 
BAY   (2002-07-12 17:12) [8]

>>Malder
Позволю с тобой не согласиться. Я отказался от набивки массива, как раз по этой причине. По следующей схеме всегда можно определить соответствия латинской и русской буквы на клавише:

латинская буква <-(латинская раскладка)-> скан код <-(русская раскладка)-> русская буква

Через ActivateKeyboardLayout узнаю раскладки.


 
Eugene Lachinov   (2002-07-12 17:32) [9]

>BAY
Если не жалко, приведи пожалуйста в форуме код, который у тебя получился для определения по латинской букве соответствующую русскую.


 
Malder   (2002-07-12 17:39) [10]

BAY, ну вообще можно. Но ты узнаешь то, что считает драйвер клавиатуры. А на самом деле, на клавиатуре может быть нарисовано совсем другое =)


 
BAY   (2002-07-12 17:54) [11]

>Malder
Да, но если я нажимаю на клавишу и у меня печатается буква Зю на латинском и быква Пю на русском, то я найду это соответствие

>Eugene Lachinov
Ок


 
BAY   (2002-07-12 19:19) [12]

Код еще не отлажен, но уже из строчных русских перекодирует в латинские:

type
TKBLayout = array [0..1] of HKL;
PKBLayout = ^TKBLayout;
rec = record
c, c1, c2, c3: char;
end;
var
i :Integer;
KBLayoutList : PKBLayout;
begin
New(KBLayoutList);
GetKeyboardLayoutList(2,KBLayoutList^);
For i := 1 to Length(S) do
S[i] := rec(MapVirtualKeyEx(VkKeyScanEx(S[i],KBLayoutList^[1]), 2,KBLayoutList^[0])).c;
Dispose(KBLayoutList);
end;


 
начинающий програмер   (2002-07-12 20:58) [13]


> Код еще не отлажен, но уже из строчных русских перекодирует
> в латинские:

Прикольно



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-81320
Delph
2002-07-12 16:54
2002.07.25
Сравнение строк.


14-81445
svet
2002-06-27 15:19
2002.07.25
Иконки


1-81296
AlexeyBl
2002-07-11 19:24
2002.07.25
Как можно осуществить перемещение по DBGrid с помощью колеса мыши


1-81292
EugenCFG
2002-07-11 21:16
2002.07.25
Изменив размер кнопоки, все остальные кнопки стали не стандар...


3-81170
KIR
2002-07-03 01:04
2002.07.25
Что за ошибка Paradox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский