Показать сообщение отдельно
  #1  
Старый 13.02.2012, 16:20
ANDRON94 ANDRON94 вне форума
Прохожий
 
Регистрация: 10.10.2011
Сообщения: 5
Репутация: 10
По умолчанию Функция Assigned()

Имею вот такой код:
Код:
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  var Pick:PNewtonBody;
begin
if Button=mbRight then
   begin
  if Assigned(Pick) then NewtonBodySetForceAndTorqueCallBack(PIck, Gravity);
 end;
end;
Хочу чтобы при нажатии правой клавиши мыши к телу на которое я кликаю(я так понимаю это Pick) прикладывалась сила Gravity. По идее функция Assigned(pick) проверяет является ли данное тело физ. объектом, но куда я не кликал на физ. тело или нет функция постоянно срабатывает и ящик падает. получаетсся что указатель Pick всегда не nil. Помогите, что бы код работал корректно.


ЗАБЫЛ ДОБАВИТЬ . . . . . . . . .



Появилась ошибка(вернее она была, просто забыл сказать):"Access violation at address 10032D8 iun module 'Newton.dll'. Write of address 0000041C'. Ошибка срабатывает в момент нажатия правой кнопкой мыши и коробка не падает, хотя я и говорил что падает, но это не так. Вывод мне ясен переменная Pick ни на что не указывает, просьба та же: Как корректно оформить код?
Ответить с цитированием