Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реакция на клавишы....


Batik ©   (2002-11-30 19:18:00) 

Тут такая проблема, как сделать чтоб програма реагировала только на нажатия клавиш клавиатуры, в частности только цифровой...


Vlad1   (2002-12-01 20:42:00) [1]

> Palladin ©

Sorry,
Я копировал текст у Palladin и не обратил внимание на то, что у него вместо key := #0 написано key=#0;
Конечно, надо так:
if (key<"0") or (key>"9") then key:=#0;

А лучше :
if ((key<"0") or (key>"9"))and(key<>#8) then key:=#0;


Vlad1   (2002-12-01 20:37:00) [2]

> Palladin ©
А почему не
if (key<"0") or (key>"9") then key=#0;
?
А лучше так:
if ((key<"0") or (key>"9"))and(key<>#8) then key=#0;

>aus ©
А реакция на нажатие левого забоя?
Правильней так:
procedure TForm1.OnKeyPress(...)
begin
if not (Key in ["0".."9",#8]) then key := #0;
end;


LongIsland   (2002-12-01 19:28:00) [3]

procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ["0".."9"]) then Tag:=Ord(key)-48;
Caption:=IntToStr(tag);
end;


А вообще-то ответ уже прозвучал aus © (30.11.02 19:31)


Batik   (2002-12-01 18:58:00) [4]

А можно поподробней. Типа надо присваивать переменной значения в зависимости от нажатой клавиши...


Юрий Зотов   (2002-12-01 01:44:00) [5]

> Palladin © (01.12.02 00:16)

Что быстрее - это еще вопрос. А вот скобок точно не хватает.


Palladin   (2002-12-01 00:16:00) [6]

а так быстрей

if ord(key)<ord("0") or ord(key)>ord("9") then key=#0;

можно сразу вместо ord("0") и ord("9") подставить числовые значения...


aus   (2002-11-30 19:31:00) [7]

procedure TForm1.OnKeyPress(...)
begin
if not (Key in ["0".."9"]) then key := #0;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо