Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

только цифры в поле   Найти похожие ветки 

 
td   (2005-10-24 11:29) [0]

как попроще сделать, чтобы в (обычное) поле можно было вводить только цифры?


 
Ega23 ©   (2005-10-24 11:32) [1]


procedure TFClassConfig.Edit1KeyPress(Sender: TObject;
 var Key: Char);
begin
 if not (Key in ["0".."9", #8]) then Key:=#0;
end;


 
td   (2005-10-24 11:33) [2]

а че такое #8 здесь?


 
Ega23 ©   (2005-10-24 11:39) [3]


> а че такое #8 здесь?


Backspace


 
begin...end ©   (2005-10-24 11:41) [4]

> td   (24.10.05 11:29)

Можно добавить стиль ES_NUMBER:

SetWindowLong(Edit.Handle, GWL_STYLE, GetWindowLong(Edit.Handle, GWL_STYLE) or ES_NUMBER)

но это, как и [1], не решит проблему полностью: в edit можно будет вставить любой текст из буфера обмена. Если это тоже нужно запретить, то можно обрабатывать OnChange, например. Или позволять вводить что угодно, проверяя корректность введённых данных непосредственно перед их использованием.


 
td   (2005-10-24 11:42) [5]

ага
спасибо


 
Ega23 ©   (2005-10-24 11:54) [6]


> но это, как и [1], не решит проблему полностью: в edit можно
> будет вставить любой текст из буфера обмена. Если это тоже
> нужно запретить, то можно обрабатывать OnChange, например.
>  Или позволять вводить что угодно, проверяя корректность
> введённых данных непосредственно перед их использованием.
>
>


Угу. Я, в общем-то, так и делаю. [1] - "грубый" запрет, а перед использованием -

 try
  StrToInt(Edit1.Text);
 except on E:Exception do
  begin
   Edit1.SetFocus;
   MessageBox(Handle, PChar("Неверное значение!"),
              PChar("Внимание!"), MB_OK or MB_ICONWARNING);
   Exit;
  end;
 end;



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
14-1129780309
Вьюер
2005-10-20 07:51
2005.11.13
Кто нибудь пользуется универсальным пультом ДУ ?


4-1125846248
Sormy
2005-09-04 19:04
2005.11.13
RSA decrypting


4-1125218505
rolex
2005-08-28 12:41
2005.11.13
Функция показывает, что в папке Prefetch файлы в использовании!


6-1122644203
Flame
2005-07-29 17:36
2005.11.13
idsmtp передача e-mail


4-1126085594
jeka_t
2005-09-07 13:33
2005.11.13
Как открывать документы при помощи CreateProcess