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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2007, 22:44   #1
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию Почему ошибку выдаёт?

Посмотрите что здесь не так?
Форму открывает но, дает предупреждение "is not valid integer.........."

procedure TForm1.BtnClick(Sender: TObject);
var
EdKolR:array[1..13] Of Integer;
MP,NV,NG,NKK,OKK22,OKK30,OKK45,OKK9 0:Integer;

begin

Form2.Showmodal;

EdKolR[1]:=StrToint(edit1.text);
EdKolR[2]:=StrToint(edit2.text);
EdKolR[3]:=StrToint(edit3.text);
EdKolR[4]:=StrToint(edit4.text);
EdKolR[5]:=StrToint(edit5.text);
EdKolR[6]:=StrToint(edit6.text);
EdKolR[7]:=StrToint(edit7.text);
EdKolR[8]:=StrToint(edit8.text);
EdKolR[9]:=StrToint(edit9.text);
EdKolR[10]:=StrToint(edit10.text);
EdKolR[11]:=StrToint(edit11.text);
EdKolR[12]:=StrToint(edit12.text);
EdKolR[13]:=StrToint(edit13.text);
MP:=(EdKolR[1]+EdKolR[2]+EdKolR[3]);
NV:=((EdKolR[3]*2)+(EdKolR[9]*2));
NG:=0;
NKK:=((EdKolR[3]*2)+(EdKolR[9]*2));
OKK22:=11;
OKK30:=1;
OKK45:=1;
OKK90:=1;
Form2.Label1.Caption:=floattostr(MP ); //не отображает
Form2.Label2.Caption:=floattostr(NV );//не отображает
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 21.06.2007, 22:55   #2
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

Форма открыта модально. Сначала ты присваиваешь значения в форме, ничего не происходит. Но после закрытия она ЗАКРЫВАЕТСЯ, а не прячется, и получается, что Form2.Label1.Caption вроде как не существует, поэтому ошибка
andrey4623 вне форума Ответить с цитированием
Старый 21.06.2007, 23:13   #3
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

Я закоментировал
//Form2.Label1.Caption:=floattostr(MP ); //не отображает
//Form2.Label2.Caption:=floattostr(NV );//не отображает
Результат тот же, что то другое значит...........
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 21.06.2007, 23:18   #4
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

Вот сообщение какое выскакивает:

Proect name.exe raised exception class EConvertError message
"is not a valid integer value'.
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 21.06.2007, 23:21   #5
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

у меня ко всем едитам применим вот такой код:

procedure TForm1.Edit9Change(Sender: TObject);
var i: integer;
begin
if edit9.text='' then edit9.text:='0';
for i:=1 to 255 do if not (Chr(i) in (['0'..'9']))
then Edit9.Text:=StringReplace(Edit9.Tex t,Chr(i),'',[rfReplaceAll]);
If Edit9.Text=EmptyStr
Then
Edit9.Text:='0';
end;

Может из-заэтого???
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 21.06.2007, 23:29   #6
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

Если коментирую этот кусок то всё нормально работает
Что здесь не так
EdKolR[1]:=StrToint(edit1.text);
EdKolR[2]:=StrToint(edit2.text);
EdKolR[3]:=StrToint(edit3.text);
EdKolR[4]:=StrToint(edit4.text);
EdKolR[5]:=StrToint(edit5.text);
EdKolR[6]:=StrToint(edit6.text);
EdKolR[7]:=StrToint(edit7.text);
EdKolR[8]:=StrToint(edit8.text);
EdKolR[9]:=StrToint(edit9.text);
EdKolR[10]:=StrToint(edit10.text);
EdKolR[11]:=StrToint(edit11.text);
EdKolR[12]:=StrToint(edit12.text);
EdKolR[13]:=StrToint(edit50.text);
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 21.06.2007, 23:29   #7
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

Если коментирую этот кусок то всё нормально работает
Что здесь не так??
EdKolR[1]:=StrToint(edit1.text);
EdKolR[2]:=StrToint(edit2.text);
EdKolR[3]:=StrToint(edit3.text);
EdKolR[4]:=StrToint(edit4.text);
EdKolR[5]:=StrToint(edit5.text);
EdKolR[6]:=StrToint(edit6.text);
EdKolR[7]:=StrToint(edit7.text);
EdKolR[8]:=StrToint(edit8.text);
EdKolR[9]:=StrToint(edit9.text);
EdKolR[10]:=StrToint(edit10.text);
EdKolR[11]:=StrToint(edit11.text);
EdKolR[12]:=StrToint(edit12.text);
EdKolR[13]:=StrToint(edit50.text);
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Старый 22.06.2007, 00:32   #8
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Лучше всего использовать функцию StrToIntDef(<текст>, <значение_по_умолчанию>). Эта функция, в отличие от StrToInt, не генерирует исключительную ситуацию, если не может преобразовать текст, а просто возвращает значение по умолчанию.
Jeni вне форума Ответить с цитированием
Старый 22.06.2007, 00:42   #9
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Inbox Посмотреть сообщение
у меня ко всем едитам применим вот такой код:
Код какой-то сложный. Проще обрабатывать OnKeyPress
Код:
procedure XXXXX.KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8, '0'..'9']) then Key := #0;
end;
Кроме цифр ничего вводится не будет. И указать эту процедуру в качестве обработчика для всех Edit'ов, а то судя по строке
Код:
if edit9.text='' then edit9.text:='0';
у тебя для каждого компонента используется свой обработчик!
Jeni вне форума Ответить с цитированием
Старый 22.06.2007, 20:32   #10
Inbox
Пользователь
 
Аватар для Inbox
 
Регистрация: 10.01.2007
Сообщений: 77
По умолчанию

Цитата:
у тебя для каждого компонента используется свой обработчик!
Да.....у каждого.
Но в твоем предложении пользователь может очистить поле ввода и нажать событие, и будет ошибка, а вообще как при таких обстоятельствах вывести сообщение грамотно?
Это тебе не следует читать.
Inbox вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдаёт NAN DM_bite Помощь студентам 2 26.08.2008 20:52
Выдаёт ошибку DM_bite Помощь студентам 2 08.08.2008 10:33
неправильно выдаёт stringgrid chelsi Общие вопросы Delphi 3 30.04.2008 22:42
прога пишет ошибку при открытии файла (почему?) nicky777 Общие вопросы Delphi 2 14.03.2008 17:56