Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Маска в Edit   Найти похожие ветки 

 
paule   (2005-03-01 11:43) [0]

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


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

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


 
Shirson ©   (2005-03-01 11:52) [2]

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


 
Aleks ©   (2005-03-01 12:21) [3]

// нажатие клавиши в поле 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;


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

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


 
Leshiy ©   (2005-03-01 14:44) [5]

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


 
Antonn ©   (2005-03-01 15:10) [6]

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


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

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


 
begin...end ©   (2005-03-01 15:13) [8]

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


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

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


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

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


 
Antonn ©   (2005-03-01 17:15) [11]

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

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


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

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


 
Antonn ©   (2005-03-01 17:40) [13]

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


 
paule   (2005-03-02 03:54) [14]

dcnfdrf bp ,eathf djpvj;yf


 
paule   (2005-03-02 03:54) [15]

извините..

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


 
Shirson ©   (2005-03-02 07:41) [16]

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 11:48) [17]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1109683663
emfw
2005-03-01 16:27
2005.03.13
Мноострочный список


4-1106860078
Unknown
2005-01-28 00:07
2005.03.13
Окно сзади


6-1104724424
Konstantin
2005-01-03 06:53
2005.03.13
Избранное как в IE


1-1109234272
Zhekson
2005-02-24 11:37
2005.03.13
запуск процедур в отдельных потоках


14-1108986537
Магнит
2005-02-21 14:48
2005.03.13
вопрос обладателям КПК





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский