Pointer & Function

Нужна помощь, две функции есть.Если делаю все по справке, то ничего не работает, а через задницу, работает но плохо.....вобщем:первая функция получает указатель на переменну типа TMyItemи передает его другой функции
PMyItem=^TMyItem;Ptr:PMyItem;Ptr:=MyItem.GetSelfAdress;Myfunction2(Ptr);Showmessage(Ptr.text); // работает!!! напишет значение
Если я обращусь к Ptr в второй функции, с прозьбой выдать значение, нехрена не будет...пустая строка.....другой пример:
procedure TForm.AddItemToVST(ParentNode: PVirtualNode;PItem: pointer);....AddItemToVST(vstGroups.RootNode, addr(tree.Items[i]));  - не работаетAddItemToVST(vstGroups.RootNode, tree.Items[i]);  -  работает
хотя по мануалу Addr() должен возвращать адрес, т.е. pointerкак мне взять адрес переменной item из списка items[i]..... и передавать его в функциях??
5 ответов

О боже.Срочно читать мат-часть.


О боже.Срочно читать мат-часть.
Спасиб за статейку, кое что новое нашел там.PS: Из богов мены выперли, так что приходится зарабатывать на хлеб..."... указатели повсюду, даже если вы их не видите."


хм.. прочитал статью. вроде стало понятно, только вот компилятор посылает нафиг....
procedure SetBit(var Int: Integer; Bit: Integer);begin  ...end; ... var  Int: Integer;  Ptr: PInteger;  Arr: array of Integer;begin  // Инициализация Int, Ptr и Arr не показана...  SetBit(Ptr^, 3);    // Передаётся сам Ptr  SetBit(Arr[2], 11); // Передаётся @Arr[2]  SetBit(Int, 7);     // Передаётся @Int
передать типизированый указатель не получается, либо данные читаются не с того адреса либо просто отказываеца компилировать.Теперь еще больше вопросов в голове... почему указатель нетипизированный передавался и все работало, а типизированный не хочет или ссылается в итоге нетуда куда надо... и как их коппироваьт... бред....


Что здесь не компилится или не работает.. Подозреваю, что инициализация Ptr. Рекомендую пользоваться отладчиком, в этом конкретном случае Evaluate\Modify - сразу многие вопросы опадают - где фигня содержится и где не фигня.


(вздох)
отказываеца компилировать
Сообщение об ошибке является военной тайной?
либо данные читаются не с того адреса
Ваша вера в наши телепатические способности помогает скорейшему решению вашей проблемы.
только вот компилятор посылает нафиг
Ага, точно.Вообще, молодец, что начал разбираться, а не "ты мне код покажи". Респект.