Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c