Главная страница
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.026 c
6-1074962960
kor@l
2004-01-24 19:49
2004.04.04
Browser


1-1079691160
ashnurov
2004-03-19 13:12
2004.04.04
ListBox


9-1064046147
PigMey
2003-09-20 12:22
2004.04.04
DelphiX


1-1079579594
dm37
2004-03-18 06:13
2004.04.04
Имя процедуры


14-1078889519
Думкин
2004-03-10 06:31
2004.04.04
С днем рождения! 10 марта.