![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Tan |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Доброго времени суток ув. форумчане! Обращаюсь к вам со своей проблемой, для начала опишу текущую картину.
Имеется следующий класс : type Описание функции этого класса : function point.Point (x : real; y : real; id_get : integer) : integer; Типы данных : init_points : array of integer; Так же есть функция которая заполняет переменные xPos, yPos, zPos значениями и вызывает функцию добавления точки. procedure TForm1.GiveValues(); И вот сама ключевая функция AddPoint() : procedure TForm1.AddPoint(); Как я отметил в коде, программа вылетает на строке new_point.Z := zPos + 150; с ошибкой EAccessViolation. Мне кажется это связано с неверной работой с динамическими массивами, но более детально я не могу понять суть этой проблемы. Буду рад помощи, заранее спасибо. Сообщение отредактировано: Tan - 1.11.2011 14:16 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так что чему в функции присваивается? Одинаковые имена полей класса и параметров - зло. Хотя бы перед именем поля поставь Self, чтобы было понятнее, что происходит...
Цитата Но когда в моём случае создаётся экзсемпляр new_point, и после вызова функции new_point.Point(параметры) значения new_point.X и new_point.Y равны 0 (по крайней мере я так заметил) - я сделал вывод что каким-то образом эти значения не передаются вне функции. Бррр... Теперь я не понял. А что должно вернуться? Где инициализация полей класса? Если добавишь Var (да, в Дельфи точно так же, как и в Паскале) - что должно вернуться из функции? Где вообще возврат результата? Функция не возвращает ничего. Компилятор должен выбрасывать предупреждение... |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 13:50 |