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

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

только цифры в поле [D7]


td ©   (2005-10-24 11:29:00) 

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


Ega23   (2005-10-24 11:54:00) [1]


> но это, как и [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;


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

ага
спасибо


begin...end   (2005-10-24 11:41:00) [3]

> td   (24.10.05 11:29)

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

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

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


Ega23   (2005-10-24 11:39:00) [4]


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


Backspace


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

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


Ega23   (2005-10-24 11:32:00) [6]


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


Наверх

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