Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1130192008
alex-s
2005-10-25 02:13
2005.11.13
Чем пользоватся и как


14-1129750882
romychk
2005-10-19 23:41
2005.11.13
ошибка при загрузке ноутбука "1702-smart hard drive detects immi"


4-1126507725
Ландграф Павел
2005-09-12 10:48
2005.11.13
Перехват всех критических ситуаций (ошибок) в приложении


10-1107425579
Dixi
2005-02-03 13:12
2005.11.13
Создание ActiveX...


2-1129556336
Fast2
2005-10-17 17:38
2005.11.13
Как "редактировать" DBGrid?




   Наверх