Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2007, 16:53   #1
Omedus
Пользователь
 
Аватар для Omedus
 
Регистрация: 01.11.2007
Сообщений: 27
Вопрос Запрет ввода с клавиатуры букв

Я пишу программу и мне понадобилось запретить ввод с клавиатуры всех букв и символов (кроме запятой), чтобы вводились лишь цифры. Так же мне нужно чтобы при вводе к примеру запятой: "," - счётчик нажатия на эту клавишу увеличивался. Помогите пожалуйста мне с этим!
Генерация случайных чисел — слишком важное дело, чтобы оставлять её на волю случая.
Scientia potentia est
Omedus вне форума Ответить с цитированием
Старый 01.11.2007, 17:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если в компонентах, то рули события OnKeyPress или OnKeyDown
Проверяй если Key<>нужному символу то Key:=0
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 17:15   #3
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

Например в edit-процедура keydоwn- смотришь какая клавиша была нажата:
Код:
if key=а then edit1.text:=edit1.text+key else if key=n then q:=q+1;
где а-номер цифры,n-номер запятой. И а и н -номера клавиш в таблице аски кодов. В общем смотри вложение.
Вложения
Тип файла: txt аски.txt (4.9 Кб, 167 просмотров)
bill вне форума Ответить с цитированием
Старый 01.11.2007, 17:25   #4
Omedus
Пользователь
 
Аватар для Omedus
 
Регистрация: 01.11.2007
Сообщений: 27
По умолчанию

Большое спасибо за помощь)
Генерация случайных чисел — слишком важное дело, чтобы оставлять её на волю случая.
Scientia potentia est
Omedus вне форума Ответить с цитированием
Старый 01.11.2007, 18:17   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

TMaskEdit не подойдёт?
пыщь
JTG вне форума Ответить с цитированием
Старый 01.11.2007, 18:34   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Все просто:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',',']) then
key:=Chr(0);
end;
mihali4 вне форума Ответить с цитированием
Старый 02.11.2007, 01:22   #7
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Все просто:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',DecimalSeparator, #8]) then
key:=Chr(0);
end;
Думаю так будет вернее, если я правильно уловил мысль, конечно
Баламут вне форума Ответить с цитированием
Старый 02.11.2007, 01:48   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Omedus Посмотреть сообщение
Я пишу программу и мне понадобилось запретить ввод с клавиатуры всех букв и символов (кроме запятой), чтобы вводились лишь цифры.
Я человек военный. Сказано - запятая, значит запятая...
mihali4 вне форума Ответить с цитированием
Старый 09.11.2007, 14:59   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
Восклицание

Вот например так можно со счетчиком как просил.
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
x:integer;
begin
x:=StrToInt(label1.Caption);
case key of
'0'..'9': begin
x:=x+1;
label1.Caption:=IntToStr(x);
end;
',': begin
x:=x+1;
label1.Caption:=IntToStr(x);
end;
#8: begin
x:=x-1;
label1.Caption:=IntToStr(x);
end;
else
Key:=Chr(0);
end;
end;

Можно конечно было упростить, но с похмура не охото мозги напрягать

Исходник во вложении!
Вложения
Тип файла: rar Ish.rar (2.6 Кб, 12 просмотров)
FaTaL вне форума Ответить с цитированием
Старый 15.04.2010, 17:16   #10
Dj_DeVaIs
Пользователь
 
Регистрация: 07.03.2009
Сообщений: 52
По умолчанию

народ а без KeyPress это можно сделать как нибудь????
Dj_DeVaIs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как защитить рабочий лист от ввода с клавиатуры, но не от действий макроса ? valerij Microsoft Office Excel 7 28.05.2008 23:59
запрет редактирования AnGrig Компоненты Delphi 3 18.10.2007 11:37
Запрет ввода кирилических символов wnuks Microsoft Office Excel 1 12.07.2007 19:45
Запрет копирования pinhead Win Api 11 10.01.2007 07:01
запрет Alt+F4 Freedom Общие вопросы Delphi 2 09.11.2006 11:47