![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как недопустить текстовые символы в edit?
49 Cent © (2006-02-25 04:32:00)Есть 4 tedit и необходимо, чтобы в них заносились только цифры и никаких букв и символов. Каким образом выполнить эту задачу? Обязательно писать код или может в свойствах компонента можно установить подобную настройку?
Pit (2006-02-25 21:46:00) [1]
> Галинка © (25.02.06 21:42) [15]
> Поддерживаю идею разрешить вводить все, а потом в защищенном
> блоке отлавливать исключение. Муторно, но надежно. Да и
> опечатки могут быть...
ДА я тоже за еееето. Даздравствует руськуя могучая языка.
Галинка (2006-02-25 21:42:00) [2]Поддерживаю идею разрешить вводить все, а потом в защищенном блоке отлавливать исключение. Муторно, но надежно. Да и опечатки могут быть...
Pit (2006-02-25 21:29:00) [3]Уважаемые програмисты новый ник-нейм Defunct= funct
ordef.
Defunct (2006-02-25 21:19:00) [4]Pit © (25.02.06 21:03) [12]
нет проблем, можете звать меня funct или def если вам так будет удобней ;>
Pit (2006-02-25 21:03:00) [5]Давайте больше не будем о грустом, и не будем засорять форум ненужными фразами. Я извинился и по моему проблемма исчерпона. С уважением Pit.
Defunct (2006-02-25 20:42:00) [6]Джо © (25.02.06 20:26) [8]
Это ему мой ник-нейм не нравится :)
Pit (2006-02-25 20:39:00) [7]Извини Джо первая мысль перевала, вторая подумала.
Pit (2006-02-25 20:33:00) [8]Нет не шутка, просто первая моя так сказать специализация is English, извини если обидел, был не прав, чего только не подумаешь, у каждого свои заморочки.
Джо (2006-02-25 20:26:00) [9]> [7] Pit © (25.02.06 19:51)
> defunct [defunct]
> прил. усопший, покойный, умерший, несуществующий, исчезнувший,
> вымерший
> Зачем же так плохо обо мне.
Нет, это ни в коем случае не о тебе. Или это шутка? Или просто пароксизм?
Pit (2006-02-25 19:51:00) [10]
> Джо © (25.02.06 19:43) [6]
> Поддерживаю [1] Defunct
defunct [defunct]
прил. усопший, покойный, умерший, несуществующий, исчезнувший, вымерший
Зачем же так плохо обо мне.
Джо (2006-02-25 19:43:00) [11]Все 3 варианта не помешают вставке чего угодно из Буфера обмена. Поддерживаю [1] Defunct (последнее предложение).
Pit (2006-02-25 18:39:00) [12]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0' .. '9',#8: ; // цифры и клавиша <Backspace>
else Key := Chr(0);
end;
end;
Pit (2006-02-25 18:38:00) [13]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'a' .. 'z','A' .. 'Z': ;
else Key := Chr(0);
end;
end;
49 Cent (2006-02-25 18:33:00) [14]2 Fay и Defunct
Спасибо за помощь! По вашим подсказкам нашел 2 варианта решения проблемы:
1. SetWindowLong(Edit1.Handle, GWL_STYLE,GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER );
2. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8]) then Key:=#0;
end;
Fay (2006-02-25 06:31:00) [15]ES_NUMBER
Defunct (2006-02-25 04:52:00) [16]ответ на ваш вопрос:
в OnKeyPress если прочитано что-то, что вам не нужно просто заменить символом #0.
наводящий пример (здесь при вводе не пропускаются буквы, но пропускаются некоторые символы):
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Byte(Key) > $39 then
Key := #0;
end;
но можно пойти более правильным путем. Пусть пользователь пишет то, что посчитает нужным, а когда он все введет, по нажатию например кнопки "Ок" - проверить правильность всего введенного.