Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод только цифр 
:(
    Опции темы
zoiberg111
Дата 19.6.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



как сделать чтобы в edit1 можны было вводить только цифры и запятую?

что тут не так?
Код


procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

var m: set of char;
begin
 m := ['0'..'9',','];
 if ord(key) = 13 then edit2.SetFocus;
 if not (key in m) and (ord(key)<>8) then key := chr(0);

end;

подскажите пожалуйста заранее спасибо
PM MAIL   Вверх
pseud
Дата 19.6.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(zoiberg111 @  19.6.2008,  10:18 Найти цитируемый пост)
что тут не так?


код рабочий, хотя, конечно, очень простоват.
пользуйся поиском по форуму.
хотябы внизу этой страницы посмотри "А здесь смотрели?"


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Beltar
Дата 19.6.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Можно покурить хелп в направлении TMaskEdit, но его работа показалась мне в свое время несколько запутанной.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
morpheyushka
Дата 19.6.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 2
Всего: 8



Цитата(Beltar @  19.6.2008,  13:06 Найти цитируемый пост)
Можно покурить хелп в направлении TMaskEdit, но его работа показалась мне в свое время несколько запутанной. 

Это точно. Там с маской повозиться нужно.

Хотя если числа имеют ограничения - то можно сделать...ну это нужно что бы хозяин темы написал!


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
THandle
Дата 20.6.2008, 00:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Мне хватает такого:
Код


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

PM   Вверх
mr.Anderson
Дата 20.6.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



THandle, самый оптимальный вариант, сам всегда такой пользую. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Beltar
Дата 20.6.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



А можно полюбопытствовать, что за символ имеет код 8?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
greenpc
Дата 20.6.2008, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Beltar,  Backspace
PM   Вверх
pseud
Дата 20.6.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



THandlemr.Andersonzoiberg111

1. копипастим любой текст
2. кликаем правой кнопокй мыши в нашем edit
3. жмем "Вставить"
и вставляется все что угодно... плохой едит для ввода чисел...

1. жмем "запятая" "запятая" "запятая" "запятая"  и видим 4 запятые... плохой едит для ввода чисел...
2. жмем "минус" "минус" "минус" "минус"  и видим 4 минуса... плохой едит для ввода чисел...


ИМХО - надо обрабатывать OnChange и анализировать весь текст.
я писал такой компонент и пришлось обрабатывать все
Код

    procedure KeyPress(var Key: Char); override;
    procedure Change; override;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure DoExit; override;





--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Beltar
Дата 20.6.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Кстати, встречаются иногда SpinEdit'ы для вещественных чисел. Можно поискать готовый компонент.

PS Вместо запятой может быть точка. Т. е. логичнее сравнивать вводимый символ с DecimalSeparator.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.