Конференция "Начинающим" » Является ли символ попавший в FormKeyPress - буквой?
 
  • IGray (10.04.17 00:50) [0]
    Подскажите, пожалуйста, как внутри FormKeyPress проще и правильнее проверить, что Key является буквой алфавита, а не управляющим (типа ESCAPE или BACKSPACE)?
  • Юрий Зотов © (10.04.17 01:01) [1]
    if UpCase(Key) in ['A'..'Z'] then ...
  • IGray (10.04.17 02:12) [2]
    Если честно, я с этого и начал, но обнаружил, что с русским алфавитом такое не прокатывает ((
    Помогите, пожалуйста!
  • Kilkennycat © (10.04.17 04:26) [3]
    версию делфи необходимо указывать.

    if IsLetter(Key) then...
  • Юрий Зотов © (10.04.17 08:19) [4]
    http://www.webdelphi.ru/2010/03/modul-character-rabota-s-simvolami-stroki

    А если версия Delphi менее 2009 (то есть, функции IsLetter в ней нет), то действуем так.

    1. Гуглим таблицу ASCII-кодов:
    http://book.itep.ru/10/ascii.htm

    2. Видим, что в ней все буквы русского алфавита, кроме буквы Ё идут подряд.

    3. Пишем код:
    if Key in ['Ё', 'ё', 'А'..'я'] then ...
  • Игорь Шевченко © (10.04.17 10:26) [5]
    Юрий Зотов ©   (10.04.17 08:19) [4]

    X = 1 - X
  • manaka © (10.04.17 13:06) [6]
    Можно и как-то так
    if ord(Key)>191 or ord(Key)=168 or ord(Key)=184 then
  • IGray (10.04.17 16:09) [7]
    > if IsLetter(Key) then...
    Большое спасибо!
    Сорри, что версию дельфи забыл указать (

    > X = 1 - X
    А это что? Какая-то местная шутка, которой я ещё не слышал? ;)
  • Юрий Зотов © (10.04.17 16:55) [8]
    > IGray   (10.04.17 16:09) [7]
    > > X = 1 - X
    > А это что? Какая-то местная шутка, которой я ещё не слышал?


    Причем свежая, буквально вчера рожденная. Если я правильно понял, то Игорь хотел сказать, что при переходе на версию Delphi с Юникодом, код в [4] работать перестанет.
  • Kilkennycat © (10.04.17 17:23) [9]

    > Юрий Зотов ©   (10.04.17 16:55) [8]

    ну, [2] частично и намекнул, что там не D7
  • NoUser © (10.04.17 17:36) [10]
    3*

    const
     Ё = Char('Ё'); е = Char('ё'); А = Char('А'); я = Char('я');
    begin
     case Key of Ё, е, А..я: {} ;
       else Key := #0
     end;
    end;


    > X = 1 - X и где мои 0,5? (?) ))
  • Юрий Зотов © (10.04.17 17:46) [11]
    > Kilkennycat ©   (10.04.17 17:23) [9]

    > ну, [2] частично и намекнул, что там не D7


    Не-а не намекнул. В D7 UpCase с русскими буквами тоже не прокатывает.
  • Kilkennycat © (10.04.17 18:06) [12]

    > Юрий Зотов ©   (10.04.17 17:46) [11

    да? значит, непомню уже...

    > NoUser ©   (10.04.17 17:36) [10]

    всё равно х=х-1   - где поддержка японского?
  • IGray (10.04.17 19:11) [13]
    Так всё-таки, причём тут иксы? Я тоже над шуткой поржать хочу ;)
  • kilkennycat © (10.04.17 19:14) [14]
    чтобы поржать, придется осилить это: http://pda.delphimaster.net/?id=1491245991&n=3
  • Dimka Maslov © (10.04.17 22:32) [15]
    IsCharAlpha вроде как ещё на запретили?
 
Конференция "Начинающим" » Является ли символ попавший в FormKeyPress - буквой?
Есть новые Нет новых   [118638   +31][b:0][p:0.001]