title: Could omission of "^" when accessing a record pointer's members cause an access violation?
body: <p>In VirtualTreeview, I am storing my data in the <strong>PVirtualNodes</strong>. I have experienced several Access Violations (typically with <em>"Read of adress 00000000"</em>) in my App, and they mostly (I'd actually dare to say Always) occur when I am doing something with my Node Data.</p>
  
  <p>However, the thing is, I declare my stuff &amp; use it like this:</p>
  
  <pre><code>// DUMMY CODE - Not written or tested in IDE
  var
   MyNode : PVirtualNode;
   MyData : PMyNodeData;
  Begin
   MyNode := VST.GetFirstSelected;
  
   if Assigned(MyNode) then
    Begin
     MyData := VST.GetNodeData(MyNode);
     if Assigned(MyData) then
     Begin
       MyData.DummyProperty := 'Test';
     End;
    End;
  End;
  </code></pre>
  
  <p>As you probably noticed, I do not <em>"dereference"</em> (correct?) my <strong>"MyData"</strong> by doing <strong>MyData^</strong>! The reason I don't is that I have been told it was not necessary to add the caret to the pointer name, however I have a feeling that it has something to do with it. If I knew, I wouldn't be posting on here. ;)</p>
  
  <p>So my question is: Is it in the end necessary to add the little <code>^</code> to MyData? And is it possible that by not doing that, I may provoke an Access Violation?</p>