Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Только цифры в Edit

Автор: Tan 4.03.2007 21:24

Хотелось бы поинтересоваться как в делфи сделать так чтобы в компонент Edit можно было бы вводить только цифры. В паскале делал через ОРД но не знаю как тут это всё дело связать с

procedure TLogs.Edit2Change(Sender: TObject);
begin

end;

Автор: мисс_граффити 4.03.2007 21:32

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

Автор: Tan 4.03.2007 21:35

а чтобы END и Home держались какие цифорки надо ещё учесть ?

Автор: volvo 4.03.2007 21:40

Ничего не надо больше учитывать... Home и End и так будут работать...

Автор: Tan 4.03.2007 22:15

Немного непонятно как данную операцию связать с конкретными эдитами. У меня на форме их 3 и я хочу чтобы именно в 2х из них можно было вводить только цифры. Я описал процедуру описанную вами выше, изменив соответсвенно название формы на свою. Программа запускается но ни в одном не работает: во все 3 эдита можно вводить и цифры и буквы. blink.gif

Автор: мисс_граффити 4.03.2007 22:17

а в инспекторе объектов прописал связь события с этой процедурой?

Автор: Tan 4.03.2007 22:23

Именно это я и забыл сделать. Спасибо Мисс Графити. Извиняйте, ещё не опытен. good.gif

Автор: kominet 17.03.2007 2:58

извеняюс наверно за глупый вопрос а какой код клавиши нужно добавить чтобы BackSpace работал в данном Edite

Автор: volvo 17.03.2007 3:09

BackSpace и так работает для TEdit (если ты ничего не менял. А если менял, то показывай, как...)

Автор: kominet 17.03.2007 3:11

Код
procedure TADDVacancy.MinPayEditKeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9']) then
  Key:=#0;
end;

вот если так пропимано то при нажатии на бекспэйс ничего не происходит.....

всё сам уже нашёлююю нужно #8 добавть

...if not(Key in ['0'..'9',#8]) then...

Автор: volvo 17.03.2007 3:31

Кстати, ты думаешь, тебя это спасет от ввода НЕ цифр?

no1.gif Copy + Paste еще никто не отменял ...

Автор: kominet 17.03.2007 4:11

Цитата(volvo @ 16.03.2007 23:31) *

Кстати, ты думаешь, тебя это спасет от ввода НЕ цифр?

no1.gif Copy + Paste еще никто не отменял ...

а есть ещё варианты???
пока вышел из ситуёвины тем что проверяю значение едита после его ввода непосредственно перед началоп операций с его значением... ИМХО както это неправильно

Автор: volvo 17.03.2007 4:28

Цитата
а есть ещё варианты???
Варианты есть всегда...

На вкладке Additional есть компонент TMaskEdit... Вот если ты туда внесешь маску, позволяющую вводить только числа, то никакими Copy/Paste буквы не запишешь...

Автор: мисс_граффити 17.03.2007 17:22

Ctrl+V и так не работает.
А вот щелчок правой кнопкой... Можно, конечно, отлавливать...

volvo, у MaskEdit свои недостатки. Можно, например, ввести такое: "1 22" при маске "только цифры"
хотя... если кол-во цифр заранее известно, можно забить не 9, а 0...