Delphi

Надо посчитать логарифм и напечатать его в текст-боксе

надо посчитать логарифм в напечатать его в текст-боксе
все хорошо, считается, а когда присваиваю бокс значение результата - выдает Project faulted with message: access violation at 0x0040b565: write of address 0x00030f84
на сколько понял - ошибка записи
вот только я не понимаю, что ее вызывает.
вот код:
Код:
begin i := 0; n := 1; arr := 0; min := StrToFloat(Min_EditBox.Text); max := StrToFloat(Max_EditBox.Text); dx := StrToFloat(dx_EditBox.Text); steps := (max-min)/dx; Length := round(steps); SetLength(y,Length); while i <= steps do begin temp := (log10(min+i*steps)*log10(min+i*steps))/2; y[i] := temp; i := i+1; end; for n := 1 to i-1 do begin arr := arr + 2*y[i]; end; arr := arr + y[0] + y[i]; Result := (dx*arr)/2; Result_EditBox.Text := IntToStr(round(result));
исключение вызывает последняя строка
Сообщение от Мысщъ
IntToStr(round(result));
Посмотри, что получается в результате этого. И вообще, Result_EditBox создан?
2mik-a-el
Создан. Все нужные объекты созданы. В результате выполнения приведенного мной кода, на последней строчке и вылетает Project faulted, о котором и говорил.
Если бы я Result_EditBox не создал, не скомпилился бы проект, заругался на неопределенную переменную
а он не ругается
Сообщение от Мысщъ
IntToStr(round(result));
Еще раз. Что получается в результате выполнения этого? Если исключение, тогда что получается в результате выполнения
Сообщение от Мысщъ
round(result)
в результате этого полчается исключение.
Хотя, если я уберу round() и сделаю FloatToStr(), то это ничего не изменить
Хм... А result какого типа? После округления он вообще в integer влезет, а?
должен
я прикинул на бумажке - цифирь получается довольно маленькая, к нулю стремится
Сообщение от Мысщъ
я прикинул на бумажке
Лучше посмотри, что в дебаге получается Думаешь, для чего я предлагаю разделить это все на части?