Главная страница
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.021 c
3-1078773828
ceval
2004-03-08 22:23
2004.04.04
как названия поля сделать по середине


4-1075281288
DENGER
2004-01-28 12:14
2004.04.04
имя com интерфейса...


14-1078702896
Johnmen
2004-03-08 02:41
2004.04.04
Физика, как она есть....


14-1078773542
Gero
2004-03-08 22:19
2004.04.04
Бот для форума


9-1063169423
Orc
2003-09-10 08:50
2004.04.04
Визуальный процесс загрузки