Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2007, 11:49   #1
Pashin
 
Регистрация: 07.12.2007
Сообщений: 3
По умолчанию Как сделать в Edit Ввод только чисел

Привет! Как сделать в Edit Ввод только чисел?
Pashin вне форума Ответить с цитированием
Старый 12.12.2007, 12:32   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Код:
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['0'..'9']+[#8]then
  begin

  end else Key:=#0;
end;
Alex21 вне форума Ответить с цитированием
Старый 12.12.2007, 18:20   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Лучше так:
Код:
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);   
begin  
 if Not (Key in ['0'..'9', #8])then Key:=#0;   
end;
Alter вне форума Ответить с цитированием
Старый 13.12.2007, 10:06   #4
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

Если написать такой код, то работа с выделением уже не работает.
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 13.12.2007, 14:11   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Сообщение от XPAiN Посмотреть сообщение
Если написать такой код, то работа с выделением уже не работает.
Напишите конкретный пример когда приведенные выше варинаты не работают и предложите свое решение
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.12.2007, 10:28   #6
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

Решение правильное, но выделение перестает работать. Решение этого вопроса заключается в использовании компонента jvValidateEdit из набора JVCL. как сделать чтобы работало выделение, если используешь KeyPress, я не знаю.
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 17.12.2007, 14:17   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Избитый вопрос.
Вот оптимальный вариант:
Код:
var vrPos, vrLength, vrSelStart: byte;
const
  I: byte = 1; //2 знака после разделителя
begin
  with Sender as TEdit do
  begin
    vrLength := Length(Text);
    vrPos := Pos(decimalseparator, Text);
    vrSelStart := SelStart;
  end;
  case Key of
    '0'..'9':
      begin
        if (vrPos > 0) and (vrLength - vrPos > I) and (vrSelStart >= vrPos) then
          Key := #0;
      end;
    ',', '.':
      begin
        if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
          Key := #0
        else
          Key := #46;
      end;
    #8: ;
  else
    Key := #0;
  end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.12.2007, 14:19   #8
Dimoney
Пользователь
 
Регистрация: 14.12.2007
Сообщений: 34
По умолчанию

Объект MaskEdit не пойдет для Вашей цели? Св-во EditMask должно помочь...
Dimoney вне форума Ответить с цитированием
Старый 17.12.2007, 14:55   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
выделение перестает работать.
Почему же у меня работает? И мышкой выделяется, и клавишами?
Что именно не работает-то, толком сказать можно?
mihali4 вне форума Ответить с цитированием
Старый 17.12.2007, 15:29   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

1. TMaskEdit

2. Свойство edit`а ES_NUMBER (учите API)

Код:
procedure TForm1.Create(Sender: TObject);
var style: cardinal;
begin
  style := GetWindowLong(Edit1.Handle, GWL_STYLE);
  SetWindowLong(Edit1.Handle, GWL_STYLE, style + ES_NUMBER);
end;
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод только букв или цифр... Teleport Помощь студентам 8 12.06.2008 14:57
ввод чисел со знаком... maLoy*508 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 21.05.2008 19:32
Ввод последовательности чисел POPOV Общие вопросы Delphi 5 16.02.2008 22:13
Разрешить ввод только определеных клавиш serres Общие вопросы Delphi 3 10.12.2007 20:08
ввод чисел bruce Microsoft Office Excel 1 08.02.2007 17:58