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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 21:39   #1
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
Вопрос Ввод чисел Edit

Подскажите как ограничить ввод чисел в Edit начиная от 0.00, 0.01, 0.02, 0.03, 0.04 до 1.00 (с шагом 0.01).
Mazepa вне форума Ответить с цитированием
Старый 03.02.2010, 22:11   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

в счетчик увеличения вставь
if (strtofloat)>=1 then abort;
fbus вне форума Ответить с цитированием
Старый 03.02.2010, 22:43   #3
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Что то не всё понятно, вот есть у меня код программы ,как видоизменить, чтобы соблюдались все необходимые параметры:

1) Вводились числа до сотых долей (от 0,01 до 1,00с шагом 0,01)
2) первое значение может принимать 0 либо 1, после него запятая, т.е. нельзя было ввести число к примеру 00,5 или 005,

Код:
var
  vrPos, vrLength, vrSelStart: byte;
  const  I: byte = 1; //i+1, два знака после запятой
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 := decimalseparator;
      end;
    #8: ;
  else
    Key := #0;
  end;
end;

Последний раз редактировалось Stilet; 04.02.2010 в 08:20.
Mazepa вне форума Ответить с цитированием
Старый 04.02.2010, 08:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А не проще взять MaskEdit?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.02.2010, 08:43   #5
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А не проще взять MaskEdit?
а какой смысл, если первое число может принимать два значения
Mazepa вне форума Ответить с цитированием
Старый 04.02.2010, 09:28   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
2) первое значение может принимать 0 либо 1, после него запятая, т.е. нельзя было ввести число к примеру 00,5 или 005,
Два? Вы написали что 0 или 1. Что то непонятно как то.
Юзайте маскедит
psycho-coder вне форума Ответить с цитированием
Старый 04.02.2010, 10:03   #7
Mazepa
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Два? Вы написали что 0 или 1. Что то непонятно как то.
Юзайте маскедит
Ну да, два, первое 0 ,а второе 1. Если изначально ввести "0," то может появится ситуация где надо ввести 1,00
Mazepa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать в Edit Ввод только чисел Pashin Компоненты Delphi 17 26.07.2011 21:12
ввод чисел на C# Alex_FF Помощь студентам 1 08.12.2009 16:40
Ввод символов в Edit в Delphi TaYgA Помощь студентам 3 21.11.2009 17:15
Ввод чисел с клавиатуры SAVIK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 26.05.2008 12:54
ввод чисел bruce Microsoft Office Excel 1 08.02.2007 17:58