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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод данных в объект Edit, помогите 
:(
    Опции темы
Sectoid
Дата 25.10.2010, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток. Решил сделать пока вот так:
Код

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in [',','0','1','2','3','4','5','6','7','8','9']) then Key:=#0;
end;


Но нужно ещё обрабатывать клавишу Back_Space и Space. Как это сделать ?
PM MAIL   Вверх
superVad
Дата 25.10.2010, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



Код

  If not (Key in [',','0','1','2','3','4','5','6','7','8','9',#8,#32]) then Key:=#0;

Вот так попробуй.
PM MAIL   Вверх
Xenag
Дата 26.10.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 51
Регистрация: 6.3.2010

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



Посоветую нажать на кнопку поиск и вести там хотя бы "Edit1KeyPress"
Тема фильтрации цифровых значений - баян.
Почему вешать на онкей нельзя, даже пояснять не буду - ибо баян.
PM   Вверх
Sectoid
Дата 26.10.2010, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, SuperVad.
PM MAIL   Вверх
Frees
Дата 26.10.2010, 07:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Код

 If not (Key in [',','0'..'9',#8,#32]) then Key:=#0;

и еще разделитель десятых может быть и "." а не "," -


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
pseud
Дата 26.10.2010, 09:12 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Frees @  26.10.2010,  07:29 Найти цитируемый пост)
и еще разделитель десятых может быть и "." а не "," - 

Код

If not (Key in [DecimalSeparator,'0'..'9',#8,#32]) then Key:=#0;



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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



можно еще дальше пойти ))

Код

If not (Key in [DecimalSeparator,'0'..'9',#8,ThousandSeparator]) then Key:=#0;



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Sectoid
Дата 26.10.2010, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну, вообщем-то, мне нужно чтобы ',' была разделителем. Я потом с этим числом работаю и графики строю. Спасибо, друзья.
PM MAIL   Вверх
Snowy
Дата 26.10.2010, 11:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



А теперь скопируй свой код и вставь в свой Edit...
PM MAIL   Вверх
pseud
Дата 26.10.2010, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Snowy @  26.10.2010,  11:17 Найти цитируемый пост)
А теперь скопируй свой код и вставь в свой Edit... 

Sectoid, это к тому что вставку Ctrl-V ты не запретишь.
Вобщем, как и сказали:
Цитата(Xenag @  26.10.2010,  02:02 Найти цитируемый пост)
Тема фильтрации цифровых значений - баян.
Почему вешать на онкей нельзя, даже пояснять не буду - ибо баян. 

Скажу от себя - не только ОнКей придется обрабатывать.




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


Бывалый
*


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

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



если не уверен в своих силай используй курренси едитор - он почти в любой библиотеке есть. (devexp, jedi и др.) можешь заодно посмотреть как там это дело реализовано.
PM MAIL   Вверх
de_Nis
Дата 27.10.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старательный
*


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

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



Цитата(pseud @  26.10.2010,  12:51 Найти цитируемый пост)
Sectoid, это к тому что вставку Ctrl-V ты не запретишь.

В моей программе (технические расчеты), кроме проверки Edit1KeyPress, подобной приведенной в этой теме (ввод только цифр, определенного десятичного разделителя), дополнительно проверяется, чтобы в Editе не было "пустого" поля или только десятичного разделителя. Никаких специальных запретов для вставки символов с помощью Ctrl-V  я не делал. Сейчас для интереса запустил программу, в Блокноте набрал строки из цифр, из букв, из смеси букв и цифр, и пытаюсь вставить в поле ввода программы с помощью Ctrl-V. Не вставляется. Запустил еще одну свою программу - та же история: не вставляются никакие символы с помощью Ctrl-V. Вставляю в другой файл Блокнота (для контроля) - вставляется, как и должно быть. Что скажете?  smile 
--------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет…
PM   Вверх
pseud
Дата 27.10.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(de_Nis @  27.10.2010,  10:11 Найти цитируемый пост)
Что скажете?

а если из буфера обмена попытаться вставить в ваш Edit "правильные" данные? Думаю, что:
Цитата(de_Nis @  27.10.2010,  10:11 Найти цитируемый пост)
Не вставляется.

и так должно быть?


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


Старательный
*


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

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



Из обсуждения темы я понял, что вставку данных с помощью Ctrl-V нужно каким-то специальным образом запрещать и удивился, что в мои программы не вставляется, хотя я ничего для этого при написании программ не делал.
P. S. "и так должно быть?" Исходные данные для программ получают не расчетом, а обмером реальных объектов, так что из буфера обмена вставлять в Edit ничего не нужно. 
--------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет…
PM   Вверх
pseud
Дата 27.10.2010, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(de_Nis @  27.10.2010,  14:45 Найти цитируемый пост)
Из обсуждения темы я понял, что вставку данных с помощью Ctrl-V нужно каким-то специальным образом запрещать и удивился, что в мои программы не вставляется, хотя я ничего для этого при написании программ не делал.

Владелц темы, похоже, отвалился и мы до конца не знаем, что реально нужно.
Цитата(de_Nis @  27.10.2010,  14:45 Найти цитируемый пост)
P. S. "и так должно быть?" Исходные данные для программ получают не расчетом, а обмером реальных объектов, так что из буфера обмена вставлять в Edit ничего не нужно.  

А если в вашей проге оператору понадобится взять данные из едита (такого же) другой формы и скопировать в едит текущей? 
Например, оператору надо внести (а раз вы обрабатываете OnKeyPress, значит он вносит) число 1000000000000000000009, которое он увидел где-то. В таком случае ИМХО лучше довериться Ctrl-V.
А у вас он не работает.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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