... tvFir: TTreeView; ... var i: Integer; ... procedure TfrmHints.FormShow(Sender: TObject); var iData: PInteger; i: Integer; begin tvFir.Items.GetFirstNode.Expand(false); for i := 0 to tvFir.Items.Count - 1 do begin New(iData); iData^ := i; tvFir.Items[i].Data := iData; end; end;procedure TfrmHints.tvFirMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var sNode: TTreeNode; begin tvFir.Hint := ''; sNode := tvFir.GetNodeAt(X, Y); if sNode <> nil then begin if i <> sNode.AbsoluteIndex then begin i := sNode.AbsoluteIndex; Application.Activatehint(Point(X, Y)); end; tvFir.Hint := sNode.Text +' ' + IntToStr(PInteger(sNode.Data)^); end; end;
tvFir: TTreeView;
...
var
i: Integer;
...
procedure TfrmHints.FormShow(Sender: TObject);
var
iData: PInteger;
i: Integer;
begin
tvFir.Items.GetFirstNode.Expand(false);
for i := 0 to tvFir.Items.Count - 1 do
begin
New(iData);
iData^ := i;
tvFir.Items[i].Data := iData;
end;
end;procedure TfrmHints.tvFirMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
sNode: TTreeNode;
begin
tvFir.Hint := '';
sNode := tvFir.GetNodeAt(X, Y);
if sNode <> nil then
begin
if i <> sNode.AbsoluteIndex then
begin
i := sNode.AbsoluteIndex;
Application.Activatehint(Point(X, Y));
end;
tvFir.Hint := sNode.Text +' ' + IntToStr(PInteger(sNode.Data)^);
end;
end;