0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 29
1

Отловить нажатие клавиш смены языка

08.02.2014, 20:12. Показов 1442. Ответов 3
Метки нет (Все метки)

Вот на подобии этого, только вот не сильно понимаю как сделать, исправьте
(Тоесть хочу, чтобы при нажатии менялась прога на такой то язык и высвечивались другие writeln...)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program crt2;
uses crt;
var
  ch : char;
begin
  writeln('Press key to choose Language');
  repeat
    ch:=ReadKey;
    case ch of
     #0 : begin
            ch:=ReadKey; {Read ScanCode}
            case ch of
            #101 : Writeln ('English');
            Writeln ('Choose your metod');
            #108 : Writeln ('Latviesu');
            WriteLn ('Ludzu izvelieties kartosanas metodi');        
            end;
          end;
    #27 : WriteLn('ESC');
    end;
  until ch=#27 {Esc}
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2014, 20:12
Ответы с готовыми решениями:

Программа не реагирует на нажатие клавиш
Ситуация в том что программа не реагирует на нажатие клавиш, за исключением определенных случаев. ...

Отловить нажатие клавиш
Как поставить обработчик я знаю, но я никак не могу сделать правильную проверку на соответствие...

Отловить нажатие клавиш
Задал мне знакомый лотусист вопрос, теперь сам мучаюсь, инетересно: можно ли в лотусе...

Отловить нажатие комбинации клавиш
Добрый день, форумчане! while(GetMessage(&message, 0, 0, 0)){ { if((...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32445 / 20940 / 8104
Регистрация: 22.10.2011
Сообщений: 36,205
Записей в блоге: 7
09.02.2014, 22:25 2
При нажатии на что? Клавиши смены языка могут быть выбраны произвольно. Скажем, вот так подправленный код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program crt2;
uses crt;
var
  ch : char;
begin
  writeln('Press key to choose Language');
  repeat
    ch:=ReadKey;
    case ch of
     #0 : begin
            ch:=ReadKey; {Read ScanCode}
            case ch of
            #101 :
            begin
            Writeln ('English');
            Writeln ('Choose your metod');
            end;
            #108 :
            begin
            Writeln ('Latviesu');
            WriteLn ('Ludzu izvelieties kartosanas metodi');
            end;
            end;
          end;
    #27 : WriteLn('ESC');
    end;
  until ch=#27 {Esc}
end.
будет выдавать сообщение на английском при нажатии Ctrl+F8, и на латышском при нажатии Alt+F5...
1
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 29
10.02.2014, 13:49  [ТС] 3
Надо чтобы при нажатии на кнопку E выдавал то то....
На клавишу L то то.....
А вроде код ASCII правельный
(Находил через program findcode;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses Crt;
 
var
  C : String[2];
  C2, TempS : String;
 
begin
clrscr;
repeat
  WriteLn('Input button:');
  C := ReadKey;
  Str(Ord(C[1]), TempS);
  C2 := '#' + TempS;
  if C = #0 then
  begin
    C := C + ReadKey;
    Str(Ord(C[2]), TempS);
    C2 := C2 + ', #' + TempS;
  end;
  WriteLn('You pressed ', C, ', with code ASCII =  ', C2);
   WriteLn('Ctrl + C' );
   writeln ('To exit');
  readln;
  until c=#27 {Esc}
end.
)

Ну а вот сама программа

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program crt2;
uses crt;
var
  ch : char;
begin
clrscr;
  writeln('Press key to choose Language');
  writeln ('E-English');
  writeln ('R-Russian');
  writeln ('L-Latvian');
  repeat
    ch:=ReadKey;
    case ch of
     #0 : begin
            ch:=ReadKey; {Read ScanCode}
            case ch of
            #101 :
            begin
            Writeln ('English');
            Writeln ('Choose your method');
            end;
            #108 :
            begin
            Writeln ('Latviesu');
            WriteLn ('Ludzu izvelieties kartosanas metodi');
            end;
            #114 :
            begin
            Writeln ('Russkij');
            writeln ('Viberite metod sortirovki');
            end;
            end;
          end;
    #27 : WriteLn('ESC');
    end;
  until ch=#27 {Esc}
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32445 / 20940 / 8104
Регистрация: 22.10.2011
Сообщений: 36,205
Записей в блоге: 7
10.02.2014, 14:30 4
Лучший ответ Сообщение было отмечено alodark как решение

Решение

Пардон, а с чего это ты считываешь коды простых кнопок как расширенные коды? Ты ж без Alt и Ctrl работаешь, просто:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
program crt2;
uses crt;
var
  ch : char;
begin
clrscr;
  writeln('Press key to choose Language');
  writeln ('E-English');
  writeln ('R-Russian');
  writeln ('L-Latvian');
  repeat
    ch:=ReadKey;
    case ch of
      #101 :
      begin
        Writeln ('English');
        Writeln ('Choose your method');
      end;
      #108 :
      begin
        Writeln ('Latviesu');
        WriteLn ('Ludzu izvelieties kartosanas metodi');
      end;
      #114 :
      begin
        Writeln ('Russkij');
        writeln ('Viberite metod sortirovki');
      end;
    #27 :
      WriteLn('ESC');
    end;
  until ch=#27 {Esc}
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2014, 14:30
Помогаю со студенческими работами здесь

Отловить нажатие клавиш в системе
Здравствуйте, помогите мне пожалуйста, я новичек, третий день везде копаюсь, но так и не нашел...

Отловить нажатие клавиш глобально
как можно реализовать ответ на нажатие кнопки клавиатуры если окно неактивно? подскажите...

Отловить нажатие клавиш в приложении
не знаю может мозгов(не спорю, в с# не очень знаю, новичок) нужно реализовать программу, нашёл...

Отловить нажатие сочетания клавиш
Доброго времени суток. К примеру, нужно реализовать событие после нажатия двух клавиш одновременно:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru