Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];
Вниз
Реакция на клавишы.... Найти похожие ветки
← →
Batik (2002-11-30 19:18) [0]Тут такая проблема, как сделать чтоб програма реагировала только на нажатия клавиш клавиатуры, в частности только цифровой...
← →
aus (2002-11-30 19:31) [1]
procedure TForm1.OnKeyPress(...)
begin
if not (Key in ["0".."9"]) then key := #0;
end;
← →
Palladin (2002-12-01 00:16) [2]а так быстрей
if ord(key)<ord("0") or ord(key)>ord("9") then key=#0;
можно сразу вместо ord("0") и ord("9") подставить числовые значения...
← →
Юрий Зотов (2002-12-01 01:44) [3]> Palladin © (01.12.02 00:16)
Что быстрее - это еще вопрос. А вот скобок точно не хватает.
← →
Batik (2002-12-01 18:58) [4]А можно поподробней. Типа надо присваивать переменной значения в зависимости от нажатой клавиши...
← →
LongIsland (2002-12-01 19:28) [5]
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)
← →
Vlad1 (2002-12-01 20:37) [6]> 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;
← →
Vlad1 (2002-12-01 20:42) [7]> 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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c