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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.04.2012, 16:59
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию В работе с таймерами при прибавлении значений real типа выдает ошибку EConvertError

Здравствуйте.
В проекте несколько таймеров, которые занимаются последовательным прибавлением.
Два из них должны работать с вещественным типом чисел.
код первого:
Код:
procedure TMainForm.Timer15Timer(Sender: TObject);
begin
if par = (200) then
begin
Timer15.Enabled:= false;
exit;
end;
par:=par+0.1;
edit4.text:= floattostr(par);
end;
код второго 
procedure TMainForm.Timer5Timer(Sender: TObject);
begin
if partep=(200) then
begin
Timer5.Enabled:= false;
exit;
end;
partep:=partep+0.1;
edit10.text:= floattostr(partep);
end;
Админ: Пользуемся тегами для офрмления кода!

Первый работает, а вот второй выдает ошибку:

Project Project 1 .exe raised exception class EConvertError with message "0.1" Is not a valid integer value1. Process stopped. Use Step or Run to continue.

Последний раз редактировалось Admin, 30.04.2012 в 17:58.
Ответить с цитированием
  #2  
Старый 30.04.2012, 17:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

с типами напутал
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 30.04.2012, 17:08
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

так что напутал?
у меня partep=real
и par=real
Ответить с цитированием
  #4  
Старый 30.04.2012, 19:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от utro35
так что напутал?
у меня partep=real
и par=real

А какой разделитель дробной части у тебя стоит в системе? Не запятая случаем? Соотвсественно, компилятор и ругается.
Ответить с цитированием
  #5  
Старый 01.05.2012, 00:01
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

Нет, стоит точка. И ругань происходит в уже скомпилированной проге, как только дело доходит до включения вышеуказанного таймера.
Отладчик тыкает в строку
Код:
edit10.text:= floattostr(partep);

Последний раз редактировалось utro35, 01.05.2012 в 00:08.
Ответить с цитированием
  #6  
Старый 01.05.2012, 00:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ну если с разделителем, как уверяешь, всё верно, значит в переменной находится не совсем то, что нужно.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 01.05.2012, 01:27
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Ну если с разделителем, как уверяешь, всё верно, значит в переменной находится не совсем то, что нужно.

Это как???
Цитата:
А какой разделитель дробной части у тебя стоит в системе?

Не понял, что подразумевается под этим, что за система имеется ввиду?

Последний раз редактировалось utro35, 01.05.2012 в 01:30.
Ответить с цитированием
  #8  
Старый 01.05.2012, 01:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Тебе видней. У меня этот код ошибки не вызывает:
Код:
var
  Par : Single = 0;
  Partep : Single = 0;

procedure TForm4.Timer1Timer(Sender: TObject);
begin
  if par = 200 then
  begin
    Timer2.Enabled:= false;
    Exit;
  end;
  par := par + 0.1;
  Edit2.Text := FloatToStr(par);
end;

procedure TForm4.Timer2Timer(Sender: TObject);
begin
  if partep = 200 then
  begin
    Timer1.Enabled := False;
    Exit;
  end;
  partep := partep + 0.1;
  Edit3.Text := FloatToStr(partep);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 01.05.2012, 01:44
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

Вот блин, нашел ошибку: на одном из обработчиков злосчастный эдит проверялся как integer
Ответить с цитированием
  #10  
Старый 01.05.2012, 02:13
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

Исправил, однако теперь дебуггер выдает ту же ошибку на строке
MainForm.ShowModal, но уже в другом юните
Ответить с цитированием
  #11  
Старый 01.05.2012, 02:23
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

ну так код выкладывай.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 01.05.2012, 02:31
utro35 utro35 вне форума
Прохожий
 
Регистрация: 03.01.2012
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
ну так код выкладывай.
Все заработало!!!!
Еще в одном месте нашел его как integer
Большое спасибо за участие!
Ответить с цитированием
  #13  
Старый 01.05.2012, 08:26
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

Цитата:
Сообщение от NumLock
с типами напутал
Цитата:
Сообщение от utro35
так что напутал?
возможно где-то из Edit как Integer потом берешь
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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