|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Функция 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; ЗАБЫЛ ДОБАВИТЬ . . . . . . . . . Появилась ошибка(вернее она была, просто забыл сказать):"Access violation at address 10032D8 iun module 'Newton.dll'. Write of address 0000041C'. Ошибка срабатывает в момент нажатия правой кнопкой мыши и коробка не падает, хотя я и говорил что падает, но это не так. Вывод мне ясен переменная Pick ни на что не указывает, просьба та же: Как корректно оформить код? Последний раз редактировалось ANDRON94, 13.02.2012 в 21:00. |
#2
|
||||
|
||||
Что то я не вижу в коде строк, где эта переменная определяется. Есть её описание и попытка использовать.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
Кажется в этом проблема, я заблуждался в функции Assigned() раньше я думал что она осуществляет проверку являлось ли нажатое тело с тем же типом что и указатель.
если var pick:TButton то я думал что Assigned(Pick) проверяетчто я нажал: кнопку или нет. Но на самом деле Assigned(Pick) не определяет переменную а всего лишь смотрит пустой адрес или нет. Теперь я знаю как ее определить, но если возникнут вопросы я их задам, тему пока не закрывайте!!!!!!!!!! |
#4
|
||||
|
||||
в справке написано же:
Цитата:
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Я понял в чем проблема, но еще нужно поработать, пока код не работает
НО ОН ЗАРАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!! |