![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Контроль вводимых данных в TEdit ? [D6, D7, Win2k, WinXP]
S_Flash © (2005-08-22 12:45:00)Подскажите пожалуйста наиболее простой способ контроля формата вводимых данных в Edit, в случае если требуется не допустить ввода текстовых данных, а пропустить только числовые?
Starcom (2005-08-22 16:04:00) [1]Используй компонент из библиотеки Rx! т.е RxEdit!
Anatoly Podgoretsky (2005-08-22 15:06:00) [2]Ну и что, что размер, ну например пользователь хочет вставить из другого места текст w100h200 - зачем удалить лишнее или скажем ввести 200? подумать и удалить знак вопроса. Зачем же ему менять, все таки не он для нас, а мы для него. Нам же остается или принять его ввод или отвергнуть, если он не верный и то сделать это удобно для пользователя.
S_Flash (2005-08-22 14:18:00) [3]"Почему бы пользователю не вводить, то что он считает нужным в конкретный момент времени?"
А если это например размер изображения в граф редакторе?
Сделал так
var значение: integer {то самое значение Edit1}
procedure TForm1.Edit1Change(Sender: TObject);
var va,code:integer;
begin
Val(Form1.Edit1.Text, va, code);
if code=0 then
значение:=strtoint(Form1.Edit1.Text);
else
Form1.Edit10.Text:=inttostr(значение);
end;
Anatoly Podgoretsky (2005-08-22 14:06:00) [4]Почему бы пользователю не вводить, то что он считает нужным в конкретный момент времени?
S_Flash (2005-08-22 13:53:00) [5]А всетаки, как быть с Paste по правому щелчку мыши или Ctr+V?
Floppy (2005-08-22 13:22:00) [6]Ну и не забыть о DecimalSeparator и BackSpase:)
begin...end (2005-08-22 13:10:00) [7]TEdit.OnChange, StringReplace
Eraser (2005-08-22 13:04:00) [8]ArtemESC
А как быть с Copy/Paste по правому щелчку мыши?
ArtemESC (2005-08-22 13:02:00) [9]На KeyPress
If not (Key in ['0'..'9']) then ShowMessage('Не число!');
ArtemESC (2005-08-22 12:51:00) [10]На KeyPress
for i := 1 to Length(Edit1.Text) do
begin
If not (Edit1.Text[i] in [0..9]) then ShowMessage('Не число!');
end;