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

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

Маска в Edit [D6, Win2k]


paule ©   (2005-03-01 11:43:00) 

Мастера подскажите пожалуйста.
У меня на форме TEdit.
как разрешить вводить туда только числа и знак '.'?


paule   (2005-03-02 11:48:00) [1]

а если число будет не 5-ти разрядное, а к примеру 7-и


Shirson   (2005-03-02 07:41:00) [2]

if not (key in ['0'..'9', '.']) then key := #0;
или
if not ((Key >= '0') and (Key <='9') or (Key = '.')))then
Key := Chr(0);


Позволят вводить 000987.9872.940.000.1

А MaskEdit прекрасно справляется с поставленной задачей. Что с ним непонятно? (самый простой вариант, например !99999.99;1;)


paule   (2005-03-02 03:54:00) [3]

извините..

Вставка из буфера возможна


paule   (2005-03-02 03:54:00) [4]

dcnfdrf bp ,eathf djpvj;yf


Antonn   (2005-03-01 17:40:00) [5]

paule   (01.03.05 17:36) [12]
а вставка из буфера необходима? если нет, то [4]


paule   (2005-03-01 17:36:00) [6]

только числа.


Antonn   (2005-03-01 17:15:00) [7]

paule   (01.03.05 17:12) [10]
скажи точно, тебе просто числа с разделителем нужно фильтровать или даты там всякие?..

ЗЫ MaskEdit не уважаю... Лучше ручками:)


paule   (2005-03-01 17:12:00) [8]

а как это сделать MaskEdit-ом? Я разбирался, но понять так и не смог


MU   (2005-03-01 15:14:00) [9]

2 Antonn ©   (01.03.05 15:10) [6]
>> а я вместо '.' поставил туда DecimalSeparator:) Так ведь можно?
 нельзя... может, он дату вводить хочет... ;)


begin...end   (2005-03-01 15:13:00) [10]

Текст можно вставить из clipboard'а. Поэтому лучше анализировать и корректировать текст в OnChange. А ещё лучше - не ограничивать ввод, а выдавать сообщение об ошибке в случае, если потом, при использовании текста edit'а, выяснится, что там введены некорректные символы. Или использовать TMaskEdit.


BillyJeans   (2005-03-01 15:11:00) [11]

что просили то и нарисовал ;о)


Antonn   (2005-03-01 15:10:00) [12]

а я вместо '.' поставил туда DecimalSeparator:) Так ведь можно?


Leshiy   (2005-03-01 14:44:00) [13]

Я бы добавил еще: #8, на всякий случай :)


BillyJeans   (2005-03-01 13:57:00) [14]

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


Aleks   (2005-03-01 12:21:00) [15]

// нажатие клавиши в поле Editl
procedure TForml.EditlKeyPress(Sender: TObject; var Key:
begin
// В поле (Editl) можно ввести только
// цифры. Процедура проверяет, является ли символ
// допустимым. Если нет, то она заменяет
// введенный символ нулевым. В результате символ
// в поле редактирования не отображается.
// Key — символ, соответствующий нажатой клавише
if not ((Key >= '0') and (Key <='9') or (Key = '.')))then
Key := Chr(0);
end;


Shirson   (2005-03-01 11:52:00) [16]

Закладка Additional
Компонент MaskEdit


MU   (2005-03-01 11:45:00) [17]

например, обработайте OnKeyPress


Наверх

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