Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.08.2011, 11:42
Ogurcofff Ogurcofff вне форума
Прохожий
 
Регистрация: 28.07.2011
Сообщения: 34
Репутация: 12
По умолчанию Edit. Запрет ввода 2х нулей до запятой

нужно в edit запретить ввод 2х нулей до запятой т.е. чтобы нельзя было ввести 00,1 или 000,1. Как в калькуляторе.
Нашел вариант в книге:
Код:
if edt1.text <> '0'
then
edt1.text:= edt1.text + '0';
Но у меня почему то получается что к одному нулю еще ноль прибавляется.
Знаю как запретить ввоб цифр или букв, как работать с разделителем дробной части. А вот с нулями этими не могу разобраться
Ответить с цитированием
  #2  
Старый 11.08.2011, 12:05
FlyInDream FlyInDream вне форума
Прохожий
 
Регистрация: 10.08.2011
Сообщения: 24
Репутация: 10
По умолчанию

А вас не устроит на событии OnKeyPress вот такой код:
Код:
procedure TForm4.edt1KeyPress(Sender: TObject; var Key: Char);
begin
  if edt1.Text = '0' then
      if Key = '0' then
      edt1.Text:= '';
end;

Больше одного нуля ввести нельзя.
Ответить с цитированием
  #3  
Старый 11.08.2011, 12:31
Ogurcofff Ogurcofff вне форума
Прохожий
 
Регистрация: 28.07.2011
Сообщения: 34
Репутация: 12
По умолчанию

Устроит конечно!!!!
Но, извините, не могу понять смыл кода. Как он работает?
Если текст=0 тогда провряем второе условие:
если нажатие клавиши =0 тогда:
ничего не писать. Так?
Тогда почему после запятой пишется по 2 нуля?
Я просто только учусь и иногда приходится репу почесать конкретно. А здесь вроде все понятно, но в то же время не въезжаю что то.
Ответить с цитированием
  #4  
Старый 11.08.2011, 12:36
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Тогда почему после запятой пишется по 2 нуля?
Потому что не истинно первое условие.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 11.08.2011, 12:47
Ogurcofff Ogurcofff вне форума
Прохожий
 
Регистрация: 28.07.2011
Сообщения: 34
Репутация: 12
По умолчанию

но после запятой опять текст моежт быть равен 0
Ответить с цитированием
  #6  
Старый 11.08.2011, 13:03
FlyInDream FlyInDream вне форума
Прохожий
 
Регистрация: 10.08.2011
Сообщения: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ogurcofff
но после запятой опять текст моежт быть равен 0
После запятой "общий текст" (edit.text) уже не равен нулю. Edit.Text это строка, поэтому пока строка состоит из одного нуля, больше нулей вы не введёте.
P.S. код который я дал, наверное плохой, вы можете ввести 0 пробел 0, и он скушает это.
Ответить с цитированием
  #7  
Старый 11.08.2011, 13:07
Ogurcofff Ogurcofff вне форума
Прохожий
 
Регистрация: 28.07.2011
Сообщения: 34
Репутация: 12
По умолчанию

Цитата:
Сообщение от FlyInDream
После запятой "общий текст" (edit.text) уже не равен нулю. Edit.Text это строка, поэтому пока строка состоит из одного нуля, больше нулей вы не введёте.
P.S. код который я дал, наверное плохой, вы можете ввести 0 пробел 0, и он скушает это.
Нет, спасибо, код работает. Теперь после вашего объяснения понятнее стало. А то пригрузился уже маленько. Спасибо еще раз!!!!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:44.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025