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

Вниз

Как поставить клавише в соответствие русский символ?   Найти похожие ветки 

 
@!!ex ©   (2007-12-16 16:41) [0]

Есть проект, в нем считывается клавиша и записывается в поле.
Делали проект для за бугорья, никаких проблем не было, нажал юзер кнопочку D, отпечаталсь D.
А теперь захотелось начальство локализацию сделать...
и надо, чтобы пользователь нажимал кнопочку D, а печаталась буковка В.
Ничего кроме виртуального кода нажатой кнопки неизвестно...


 
Правильный_Вася   (2007-12-16 16:46) [1]

через раскладку перекодировать?


 
Leonid Troyanovsky ©   (2007-12-17 09:59) [2]


> @!!ex ©   (16.12.07 16:41)  

> А теперь захотелось начальство локализацию сделать...
> и надо, чтобы пользователь нажимал кнопочку D, а печаталась
> буковка В.

Странная какая-то локализация. Впрочем, извольте-с

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
 vk: Word;
 buf: array [0..1] of Char;
 kbs: TKeyboardState;
begin
 vk := VkKeyScan(Key);
 GetKeyboardState(kbs);
 ToAsciiEx(vk, MapVirtualKey(vk, 0), kbs, buf, 0, $04190419);
 Key := buf[0];
end;

--
Regards, LVT.


 
@!!ex ©   (2007-12-17 12:03) [3]

Спасибо, Леонид! То что нужно!!!

P.S.
Это невся локализация естественно, все остальное просто проблем не вызвало, :)


 
Kolan ©   (2007-12-17 12:21) [4]

Вот еще мой вариант.

function TCardDataView.ConvertRussianSymbolToEnglish(C: Char): Char;
begin
 case C of
   "Й": Result := "Q";
   "Ц": Result := "W";
   "У": Result := "E";
   "К": Result := "R";
   "Е": Result := "T";
   "Н": Result := "Y";
   "Г": Result := "U";
   "Ш": Result := "I";
   "Щ": Result := "O";
   "З": Result := "P";
   "Ф": Result := "A";
   "Ы": Result := "S";
   "В": Result := "D";
   "А": Result := "F";
   "П": Result := "G";
   "Р": Result := "H";
   "О": Result := "J";
   "Л": Result := "K";
   "Д": Result := "L";
   "Я": Result := "Z";
   "Ч": Result := "X";
   "С": Result := "C";
   "М": Result := "V";
   "И": Result := "B";
   "Т": Result := "N";
   "Ь": Result := "M";

   "Ю": Result := ".";
 else
   Result := C;
 end;

 {Вариатн конвертации Leonid Troyanovsky (не удалять): }
 {var
    vk: Word;
    buf: array [0&#1331] of Char;
    kbs: TKeyboardState;
  begin
    vk := VkKeyScan(Key);
    GetKeyboardState(kbs);
    ToAsciiEx(vk, MapVirtualKey(vk, 0), kbs, buf, 0, $04090409);
    Key := buf[0];
   end;}
end;


Обрати внимание на комментарии.


 
@!!ex ©   (2007-12-17 12:24) [5]

> [4] Kolan ©   (17.12.07 12:21)

Мне наоборот надо. :)
А чем лучше [2]?
Ведь тут жесткая привязка к раскладке...


 
Kolan ©   (2007-12-17 12:31) [6]

> А чем лучше [2]?

Ничем, даже хуже.


 
Правильный_Вася   (2007-12-17 15:15) [7]

> array [0Գ] of Char;
это че за знак?
или это новый синтаксис объявления массива?


 
Anatoly Podgoretsky ©   (2007-12-17 15:26) [8]

> Правильный_Вася  (17.12.2007 15:15:07)  [7]

Синтаксис старый, символ новый.


 
Правильный_Вася   (2007-12-17 16:10) [9]

и что он означает? бесконечность, что ли?


 
Kolan ©   (2007-12-17 16:12) [10]

> и что он означает? бесконечность, что ли?

Спроси сначала как его набрать :)


 
Юрий Зотов ©   (2007-12-17 18:06) [11]

Это так называемый полудинамический массив. То есть, размер задан, но какой - непонятно.



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
11-1182446007
Vladimir Kladov
2007-06-21 21:13
2008.01.13
Версия 2.69


15-1197011581
TUser
2007-12-07 10:13
2008.01.13
ICQ-рассылки


15-1197245273
Анатолий Подгорецкий
2007-12-10 03:07
2008.01.13
Обсуждения качества модерирования форумов


2-1197552814
Костяшка
2007-12-13 16:33
2008.01.13
работа с с етью в Lazarus


2-1197625497
Max
2007-12-14 12:44
2008.01.13
TreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский