Help: TTreeView's TTreeNode.Data always nil

Hi:

I've got a problem with TTreeView. I put some TTreeNodes into place
(including setting the Data property), then when I try to read it back
out, the Data property is nil. Can anybody tell me what I am doing wrong?

Here is the code to load the TTreeView, which works fine:

************************************************************

procedure TGrafrqForm.FormCreate(Sender: TObject);
var
   cnt: Integer;
   ANode: TTreeNode;
   SQ, SQ2: TSPSSQuestion;
begin
  SPSSFreqReport := SPSSFreqReport.Create('<a filename goes here>');
  if SPSSFreqReport <> nil then begin
     for cnt := 0 to SPSSFreqReport.SPSSQuestionList.Count - 1 do begin
         {Load up the tree viewer with questions}
         SQ := SPSSFreqReport.SPSSQuestionList.Items[cnt];
         ANode := TTreeNode.Create(QuestionView.Items);
         ANode.Text :=  SQ.Lab;
         ANode.Data := SQ;
         QuestionView.Items.Add(ANode,ANode.Text);
         SQ2 := ANode.Data;
         ShowMessage(SQ2.Stem); {This works fine, showing what I want}
     end;
  end
  else ShowMessage('ERROR: Creation of SPSSFreqReport');
end;

************************************************************

Here is the code I am using to try to access the Data of the TTreeNode:

procedure TGrafrqForm.BitBtn2Click(Sender: TObject);
var
   cnt: Integer;
   AnItem: TSPSSQuestion;
   ANode: TTreeNode;
begin
     ListBox1.Clear;
     for cnt:=0 to QuestionView.Items.Count - 1 do begin
         ANode := QuestionView.Items[cnt];
         AnItem := ANode.Data;
         if AnItem <> nil then ListBox1.Items.Add('y'+AnItem.Lab)
         else ListBox1.Items.Add('n'+ANode.Text);
     end;
end;

************************************************************

It seems that every time, AnItem is nil!

Does anybody know why?

Thanks for your help,

Reid Abel