Вниз
Скачать: CL | DM;

Как недопустить текстовые символы в edit?   Найти похожие ветки 

← →
49 Cent   (2006-02-25 04:32) [0]

Есть 4 tedit и необходимо, чтобы в них заносились только цифры и никаких букв и символов. Каким образом выполнить эту задачу? Обязательно писать код или может в свойствах компонента можно установить подобную настройку?


← →
Defunct ©   (2006-02-25 04:52) [1]

ответ на ваш вопрос:
в OnKeyPress если прочитано что-то, что вам не нужно просто заменить символом #0.

наводящий пример (здесь при вводе не пропускаются буквы, но пропускаются некоторые символы):
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if Byte(Key) > $39 then
    Key := #0;
end;



но можно пойти более правильным путем. Пусть пользователь пишет то, что посчитает нужным, а когда он все введет, по нажатию например кнопки "Ок" - проверить правильность всего введенного.


← →
Fay ©   (2006-02-25 06:31) [2]

ES_NUMBER


← →
49 Cent   (2006-02-25 18:33) [3]

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;


← →
Pit ©   (2006-02-25 18:38) [4]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
"a" .. "z","A" .. "Z": ;
else Key := Chr(0);
end;
end;


← →
Pit ©   (2006-02-25 18:39) [5]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
"0" .. "9",#8: ; // цифры и клавиша <Backspace>
else Key := Chr(0);
end;
end;


← →
Джо ©   (2006-02-25 19:43) [6]

Все 3 варианта не помешают вставке чего угодно из Буфера обмена. Поддерживаю [1] Defunct (последнее предложение).


← →
Pit ©   (2006-02-25 19:51) [7]


> Джо ©   (25.02.06 19:43) [6]
> Поддерживаю [1] Defunct


defunct [defunct]
прил. усопший, покойный, умерший, несуществующий, исчезнувший, вымерший
Зачем же так плохо обо мне.


← →
Джо ©   (2006-02-25 20:26) [8]

> [7] Pit ©   (25.02.06 19:51)
> defunct [defunct]
> прил. усопший, покойный, умерший, несуществующий, исчезнувший,
> вымерший
> Зачем же так плохо обо мне.

Нет, это ни в коем случае не о тебе. Или это шутка? Или просто пароксизм?


← →
Pit ©   (2006-02-25 20:33) [9]

Нет не шутка, просто первая моя так сказать специализация is  English, извини если обидел, был не прав, чего только не подумаешь, у каждого свои заморочки.


← →
Pit ©   (2006-02-25 20:39) [10]

Извини Джо первая мысль перевала, вторая подумала.


← →
Defunct ©   (2006-02-25 20:42) [11]

Джо ©   (25.02.06 20:26) [8]

Это ему мой ник-нейм не нравится :)


← →
Pit ©   (2006-02-25 21:03) [12]

Давайте больше не будем о грустом, и не будем засорять форум ненужными фразами. Я извинился и по моему проблемма исчерпона. С уважением Pit.


← →
Defunct ©   (2006-02-25 21:19) [13]

Pit ©   (25.02.06 21:03) [12]

нет проблем, можете звать меня funct или def если вам так будет удобней ;>


← →
Pit ©   (2006-02-25 21:29) [14]

Уважаемые програмисты новый ник-нейм Defunct = funct or def.


← →
Галинка ©   (2006-02-25 21:42) [15]

Поддерживаю идею разрешить вводить все, а потом в защищенном блоке отлавливать исключение. Муторно, но надежно. Да и опечатки могут быть...


← →
Pit ©   (2006-02-25 21:46) [16]


> Галинка ©   (25.02.06 21:42) [15]
> Поддерживаю идею разрешить вводить все, а потом в защищенном
> блоке отлавливать исключение. Муторно, но надежно. Да и
> опечатки могут быть...


ДА я тоже за еееето.  Даздравствует руськуя могучая языка.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
4-1134833366
HandleFinder
2005-12-17 18:29
2006.03.12
Как найти Handle окна сообщения ShowMessage ?


3-1137503688
Бульбаш
2006-01-17 16:14
2006.03.12
Ограничение макс. значения поля.


3-1137594058
jack128
2006-01-18 17:20
2006.03.12
особенности работы left join


2-1140863417
Volfram
2006-02-25 13:30
2006.03.12
Microsoft Help Workshop


2-1140437038
Василь Быков
2006-02-20 15:03
2006.03.12
Как добавить поле в таблицу ?




   Наверх