![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Имеется код
Код:
case Key of
..............
'G', 'g', 'П', 'п' :
begin
s := edtCurFrame.Text;
Delete(s,1,1); Insert('G', s, 1);
Key:=#0;
edtCurFrame.Text:=s;
edtCurFrame.SelLength:=0;
edtCurFrame.SelStart:= Length(s);
end; , т.е. задача: при нажатии на соответствующую клавишу должен вставляться определенный символ в определенное место в строке, не зависимо от раскладки клавиатуры и регистра.Собственно все работает, но подозреваю, что код можно написать проще, например, создать массив, что-то типа Код:
var charry: array[1..8] of char; |
|
#2
|
||||
|
||||
|
Взамен удобнее использовать OnKeyDown. Не зависит от раскладки и регистра.
|
|
#3
|
||||
|
||||
|
Эх, пердюмонокль какой, усложнять, так усложнять
можно ещё G-кодом (здесь на весь латинский алфавит в кверти формате, уберите лишние знаки)Код:
function zn(ds: byte): char;
const
scn: array[0..1] of array [0..25] of byte =
((81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 65, 83, 68,
70, 71, 72, 74, 75, 76, 90, 88, 67, 86, 66, 78, 77 ),
(201,214,211,202,197,205,195,216,217,199,212,219,194,
192,207,208,206,203,196,223,215,209,204,200,210,220));
var
i: integer;
begin
Result:= char(ds);
for i := 0 to 25 do
if (ds = scn[0, i]) or
(ds = scn[0, i] + 32) or
(ds = scn[1, i]) or
(ds = scn[1, i] + 32) then
begin
Result:= char(scn[0, i]);
Exit;
end;
end;Код:
...
if zn(Byte(Key)) in ['G'{,'A','R','B','','','',''}] then
with edtCurFrame do
begin
s:= Text;
if Length(s) > 0 then
s[1]:= zn(Byte(Key))
else
s:= zn(Byte(Key));
Key:= #0;
Text:= s;
SelLength:= 0;
SelStart:= Length(Text);
end;
...З.Ы. Немного сократил букофф Последний раз редактировалось Alegun, 24.10.2013 в 11:26. Причина: дополнение |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Помидоркин (24.10.2013)
| ||
|
#4
|
|||
|
|||
|
Вот в этой статье есть работа склавишами как с кодами и как с символами
|