onMouseMoveでカスタムヒントを使用していますが、正しく機能しています。問題は、文字列へのフルパスを返すことです。これがコードの場合です。
procedure TCoreVMain.CoreShellTreeViewMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
tree: TsShellTreeView;
hoverNode: TTreeNode;
hitTest : THitTests;
begin
if (Sender is TsShellTreeView) then
tree := TsShellTreeView(Sender)
else
Exit;
hoverNode := tree.GetNodeAt(X, Y) ;
hitTest := tree.GetHitTestInfoAt(X, Y) ;
if (lastHintNode <> hoverNode) then
begin
Application.CancelHint;
if (hitTest <= [htOnItem, htOnIcon, htOnLabel, htOnStateIcon]) then
begin
lastHintNode := hoverNode;
FileToolPanel.Caption := tree.path; //hovernode.Text;
tree.Hint := NodeHint(hoverNode) ;
end;
end;
end;
hovernode.textは、「c:\ temp」ではなく、表示名「temp」のみを返します。ノードアイテムにカーソルを合わせて選択されていない場合、ノードのフルパスを復元するにはどうすればよいですか。
前もって感謝します。