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

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

Контроль вводимых данных в 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;


Наверх

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