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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 06:34   #11
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Оптимальным вообще было бы запретить ввод минуса в edit
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 09.04.2013, 08:14   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может после минуса будет число.
Тогда это уже действительно будет ошибка, а не число.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2013, 11:39   #13
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Тогда это уже действительно будет ошибка, а не число.
ошибка если число будет перед минусом типа "5-"
ну а после минуса ошибки не будет "-5"
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 09.04.2013, 16:41   #14
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

а вообще выкинуть нафиг этот эдит и поставить SpinEdit1: TSpinEdit стандартный и не париться с проверкой на число (если конечно число будет целым)

или если так хочется сообщений в эдите то всё просто.
Код:
procedure TForm5.Edit1Change(Sender: TObject);
var
  a:double;
begin
  if not trystrtofloat(Edit1.Text,a) then
  begin
    if a<0 then 
    begin
      ShowMessage('Введите положительное значение');
      Edit1.Text:='';
    end
  end
  else
    ShowMessage('Введите нормальные числа');

end;
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 09.04.2013 в 16:48. Причина: добавил код
IliaIT вне форума Ответить с цитированием
Старый 09.04.2013, 20:12   #15
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

Ведь и в правду, лучший вариант для оптимизации, через Copy проверять каждый символ. Менее затратно чем Pos, да и вовсе проблем меньше. Хотя раньше я думал иначе
stalker1995s вне форума Ответить с цитированием
Старый 09.04.2013, 20:59   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну не знаю, Edit для ввода цифровых данных не использую, но если в него допустим только ввод не отрицательных чисел, сделал бы примерно следующее
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var i,SelStart: Integer;
    s,s1: String;
begin
  SelStart:=TEdit(Sender).SelStart;
  s1:=TEdit(Sender).Text;
  if (SelStart>0) and (SelStart<Length(s1)) then Dec(SelStart);
  s:='';
  for i:=1 to Length(s1) do if s1[i] in ['0'..'9'] then s:=s+s1[i];
  if Length(s)<>Length(s1) then begin
    TEdit(Sender).OnChange:=nil;
    TEdit(Sender).Text:=s;
    TEdit(Sender).OnChange:=Edit1Change;
    if SelStart>Length(s) then SelStart:=Length(s);
    TEdit(Sender).SelStart:=SelStart;
    Beep;
  end;
end;
Ограничить значение можно или используя MaxLength, или по OnExit ругаться на слишком большое число
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.04.2013 в 21:02.
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка edit Pearl777 Общие вопросы Delphi 2 04.03.2013 23:13
запрет на минус не вначале цифры в edit 13xXx13 Помощь студентам 2 21.09.2012 22:37
Проверка под Edit teres Общие вопросы Delphi 9 25.10.2011 10:12
Проверка 3 Edit-a на наличие текста misher Общие вопросы Delphi 7 14.02.2011 10:16
Проверка текста в Edit misher Общие вопросы Delphi 15 02.10.2010 13:17