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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 18:08   #1
Karina89
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 67
Смущение компонент Edit!

Здравствуйте, программисты! можете подсказать, пожалуйста, как сделать так, чтобы когда пользователь в программе не ввел в Edit какое-то значение, чтобы программа выдавала не ошибку, а сообщение, например,
"Введите значение k"???
Оператор ввода такой:
k:=inttostr(Edit1.Text);
P.S.: спасибо заранее!
Karina89 вне форума Ответить с цитированием
Старый 17.05.2011, 18:11   #2
Winnerer
Пользователь
 
Аватар для Winnerer
 
Регистрация: 13.05.2011
Сообщений: 16
По умолчанию

гугл на тему try .. except
[ferox]
Winnerer вне форума Ответить с цитированием
Старый 17.05.2011, 18:11   #3
Rekky
Форумчанин
 
Аватар для Rekky
 
Регистрация: 14.01.2009
Сообщений: 312
По умолчанию

Можно использовать блок try except
Код:
try
k:=inttostr(Edit1.Text);
exept
 showmessage('Введите значение!');
end;
Но это если при присвоении, действительно возникает ошибка..
Никому не поставить нас на колени! Мы лежали и будем лежать!
Rekky вне форума Ответить с цитированием
Старый 17.05.2011, 18:13   #4
Karina89
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 67
По умолчанию

Спасибо огромное =) =) ^-^
Karina89 вне форума Ответить с цитированием
Старый 17.05.2011, 18:17   #5
Karina89
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 67
По умолчанию

нет! не работает((
надо так, чтобы если пользователь ввел значение в Edit, то оно естественно присвоилось переменной k, а если не ввел, то выводилось только сообщение, чтобы пользователь ввел значение! а то у меня и это сообщение выводится, а потом ещё и сообщение об ошибке (уже от самого Delphi).
P.S. в TurboPascal!
Karina89 вне форума Ответить с цитированием
Старый 17.05.2011, 18:26   #6
Winnerer
Пользователь
 
Аватар для Winnerer
 
Регистрация: 13.05.2011
Сообщений: 16
По умолчанию

Цитата:
сообщение об ошибке (уже от самого Delphi).
а в дебаге всегда так будет, вы попробуйте приложение отдельно запустить.

Код:
procedure TForm1.Edit1Change(Sender: TObject);
var k:integer;
begin
if edit1.Text='' then
   begin
   showmessage('Введиите значение');
   exit;
   end;
  try
  k:=strtoint(edit1.Text);
  except
  end;
end;
//мимо проходил
[ferox]
Winnerer вне форума Ответить с цитированием
Старый 17.05.2011, 18:35   #7
Karina89
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 67
По умолчанию

я пробовала отдельно запускать. Всё-равно выводит сначала моё, а потом опять Delphi-ское сообщение)
последний оператор ни в procedure TForm1.Edit1Change(Sender: TObject); ни в procedure procedure TForm1.Button1Click(Sender: TObject); ничего не выводит..((( никаких сообщений вообще...
Karina89 вне форума Ответить с цитированием
Старый 17.05.2011, 18:40   #8
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Что вы человеку впариваете свой try except..... Судя по всему нужно вводить целое число. Ну так вот напиши функцию, которая проверит:

1. Все ли символы цифры.
2. Кол-во цифр (макс. число типа)
3. Не стоит ли первой цифрой ноль.

Всё. Функция готова.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 17.05.2011, 18:46   #9
Karina89
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 67
По умолчанию

ну нет же)! всё намного проще!
по нажатию кнопочки Button1 в Edit1 должно быть введено число, которое затем присвоиться переменной k! но если пользователь не ввел число в Edit1, то программа произвольно выводит сообщение об ошибке (на английском, непонятное короче для пользователя, а не программиста)! так вот! я хочу чтобы не ошибка выводилась, а моё сообщение, чтобы пользователь "ввел значение"!)
Karina89 вне форума Ответить с цитированием
Старый 17.05.2011, 18:58   #10
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
по нажатию кнопочки Button1 в Edit1 должно быть введено число, которое затем присвоиться переменной k!
Дело в том, что функция inttostr выдаст ошибку если ей дать "не число". Поэтому чтоб функция ошибку не выдалу нужно ей подсунуть "правильное число".

Я начну:

Код:
Function CheckValueInt(S : String) : Boolean;
Begin
Result := True;
If Length(S) = 0 Then Result := False; 
If Length(S) > 1 Then If S[1] = '0' Then Result := False;
End;
Теперь в поле нельзя оставить пустым и начинать писать число с нуля.

Теперь вот так её вызвать:

Код:
If CheckValueInt(Edit1.Text) = True Then 
ShowMessage('Ок.')
Else
ShowMessage('Ошибка');
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент Edit с mysql tuno4er Помощь студентам 6 15.12.2010 12:52
два компонента Edit и компонент Button. lastarmyman Общие вопросы .NET 5 28.05.2010 03:27
Компонент Edit, нужен массив Kuchiki Byakuya Компоненты Delphi 5 15.04.2010 16:52
Компонент Edit GazimagomedovM Помощь студентам 3 14.04.2008 23:59
Builder. компонент Edit <vlad> C++ Builder 3 01.02.2008 10:34