![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поставить клавише в соответствие русский символ?
@!!ex © (2007-12-16 16:41:00)Есть проект, в нем считывается клавиша и записывается в поле.
Делали проект для за бугорья, никаких проблем не было, нажал юзер кнопочку D, отпечаталсь D.
А теперь захотелось начальство локализацию сделать...
и надо, чтобы пользователь нажимал кнопочку D, а печаталась буковка В.
Ничего кроме виртуального кода нажатой кнопки неизвестно...
Юрий Зотов (2007-12-17 18:06:00) [1]Это так называемый полудинамический массив. То есть, размер задан, но какой - непонятно.
Kolan (2007-12-17 16:12:00) [2]> и что он означает? бесконечность, что ли?
Спроси сначала как его набрать :)
Правильный_Вася (2007-12-17 16:10:00) [3]и что он означает? бесконечность, что ли?
Anatoly Podgoretsky (2007-12-17 15:26:00) [4]> Правильный_Вася (17.12.2007 15:15:07) [7]
Синтаксис старый, символ новый.
Правильный_Вася (2007-12-17 15:15:00) [5]> array [0 Գ] of Char;
это че за знак?
или это новый синтаксис объявления массива?
Kolan (2007-12-17 12:31:00) [6]> А чем лучше [2]?
Ничем, даже хуже.
@!!ex (2007-12-17 12:24:00) [7]> [4] Kolan © (17.12.07 12:21)
Мне наоборот надо. :)
А чем лучше [2]?
Ведь тут жесткая привязка к раскладке...
Kolan (2007-12-17 12:21:00) [8]Вот еще мой вариант.
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Գ] 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:03:00) [9]Спасибо, Леонид! То что нужно!!!
P.S.
Это невся локализация естественно, все остальное просто проблем не вызвало, :)
Leonid Troyanovsky (2007-12-17 09:59:00) [10]
> @!!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.
Правильный_Вася (2007-12-16 16:46:00) [11]через раскладку перекодировать?