![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
В проекте несколько таймеров, которые занимаются последовательным прибавлением. Два из них должны работать с вещественным типом чисел. код первого: Код:
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
|
||||
|
||||
![]() с типами напутал
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() так что напутал?
у меня partep=real и par=real |
#4
|
|||
|
|||
![]() Цитата:
А какой разделитель дробной части у тебя стоит в системе? Не запятая случаем? Соотвсественно, компилятор и ругается. |
#5
|
|||
|
|||
![]() Нет, стоит точка. И ругань происходит в уже скомпилированной проге, как только дело доходит до включения вышеуказанного таймера.
Отладчик тыкает в строку Код:
edit10.text:= floattostr(partep); Последний раз редактировалось utro35, 01.05.2012 в 00:08. |
#6
|
||||
|
||||
![]() Ну если с разделителем, как уверяешь, всё верно, значит в переменной находится не совсем то, что нужно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() Цитата:
Это как??? Цитата:
Не понял, что подразумевается под этим, что за система имеется ввиду? Последний раз редактировалось utro35, 01.05.2012 в 01:30. |
#8
|
||||
|
||||
![]() Тебе видней. У меня этот код ошибки не вызывает:
Код:
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
|
|||
|
|||
![]() Вот блин, нашел ошибку: на одном из обработчиков злосчастный эдит проверялся как integer
|
#10
|
|||
|
|||
![]() Исправил, однако теперь дебуггер выдает ту же ошибку на строке
MainForm.ShowModal, но уже в другом юните |
#11
|
||||
|
||||
![]() ну так код выкладывай.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#12
|
|||
|
|||
![]() Цитата:
Еще в одном месте нашел его как integer Большое спасибо за участие! |
#13
|
||||
|
||||
![]() Цитата:
Цитата:
![]() Пишу программы за еду. __________________ |