Помощь - Поиск - Пользователи - Календарь
Полная версия: Указатель на Public переменную в классе
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
AlienEmperor
Вопрос: есть определенный класс, у него есть св-во (public) Single типа. Можно ли присвоить указателю адрес этого св-ва, а затем менять ? У меня не получается...

Пример:
Код

var P:Pointer;

P:=@Engine.Items[3].X;
Single(P):=0; // Не работает...


Если так нельзя, то может быть есть другой способ ?
volvo
Разыменовать указатель не пробовал? Как ты хочешь Pointer привести к типу Single?

Либо
P:=@Engine.Items[3].X;
Single(P^):=0;

либо (что более вероятно)
P:=@Engine.Items[3].X;
PSingle(P)^ := 0;
AlienEmperor
2Volvo: Спасибо за быстрый ответ! Ты, конечно, прав: надо писать Single(P^):=0 ... Я ошибся когда писал. Но дело было не в этом! Весь глюк был в том, что св-во Х - Double !!! На этом я и "погорел". Сейчас поставил Double(P^):=0 и все работает.

P.S. Честно говоря, не понимаю: есть ли разница между записями:

Код

P:=@Engine.Items[3].X;
Single(P^):=0;


и

Код

P:=@Engine.Items[3].X;
PSingle(P)^ := 0;


??? Если можно, объясни... Я обычно использовал первый вариант и все работало... Может, второй лучше ?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.