Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Case & not   Найти похожие ветки 

 
stelius ©   (2004-03-16 10:30) [0]

Мастера, необходимо, чтобы в TEdit обрабатывалось только нажатие на определенные клавиши (например: пробел и enter), а остальные клавиши не функционировали. Пишу в OnKeyPressed следующее:
 case Key of
   #32, #13: begin
             end;
 else
   Key := #0;
 end; //case

Проблема вот в чем: есть ли возможность сделать инверсию, вставить чтот-то вроде not, чтобы избавиться от пустого оператора?


 
NAlexey ©   (2004-03-16 10:36) [1]

есть:
 if not ((Key in [ #32, #13]) or (Key < #32)) then
   Key := #0;


 
stelius ©   (2004-03-16 10:45) [2]

Согласен. Сорри, не достаточно конкретизировал, надо вот такую конструкцию реализовать:
case Key of
 #48..#57: begin
             <какие-то_действия>
           end;
 #32, #13: begin
           end;
else
 Key := #0;
end; //case


 
TUser ©   (2004-03-16 10:54) [3]

Любой case можно представить в виде последовательности if"ов. В данном случае
if Key in [ #48..#57] then begin
            <какие-то_действия>
          end else
if not (key in [ #32, #13]) then
Key := #0;
// end; //case


 
Noway ©   (2004-03-16 10:56) [4]

if not ((Key in [ #32, #13]) or (Key < #32)) then
   Key := #0;
Добавь суда все свои коды
будет множество [ #48..#57,#32, #13]


 
stelius ©   (2004-03-16 11:08) [5]

2 Noway

> Добавь суда все свои коды
> будет множество [ #48..#57,#32, #13]


В таком случае <какие-то_действия> не будут выполняться для #48..#57, а если добавить для if"а else, то <какие-то_действия> будут выполняться еще при нажатии на пробел и enter и то и другое не желательно.

Thanks 2 All. Обсуждение натолкнуло меня на необходимое решение.
Надо добавить в else для case if.
case Key of
#48..#57: begin
            <какие-то_действия>
          end;
else
if not (Key in [ #32, #13]) then Key := #0;
end; //case


 
Noway ©   (2004-03-16 11:14) [6]

удачи



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

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-1077897634
Andrew
2004-02-27 19:00
2004.04.04
Сертификаты открытого ключа


6-1075407578
Arsen
2004-01-29 23:19
2004.04.04
Save As... в TWebBrowser


7-1074599954
LordBTR
2004-01-20 14:59
2004.04.04
Как программно определить текущую раскладку клавиатуры? (En,Ru)


7-1075083080
AlexVC
2004-01-26 05:11
2004.04.04
Включить/отключить модем


1-1079689256
eXtreme
2004-03-19 12:40
2004.04.04
Перенаправление текста из консоли в Memo