Hallo,
ich probiere verzweifelt im Code einen bestimmten Node als Selected auszuwählen. Also das dieser Blau hinterlegt wird. Ich habe die ShellTreeView-Klasse erweitert, also bitte keine Workarounds die mit Onclick oder so arbeiten. Hier mein Code:
Delphi-Quellcode:
FromPath := TFileDragObject(Source).FFullPathList.Strings[0];
ToPath := TShellFolder(Self.DropTarget.Data).PathName;
if (FromPath = ToPath) or not (DirectoryExists(ToPath)) or
(GetParentFolder(FromPath) = ToPath) then Exit;
PrepareCopy;
ParentNode := Self.Selected.Parent;
SHOpFiles(FromPath, ToPath, FileOp, FOF_RENAMEONCOLLISION);
Self.Refresh(Self.DropTarget);
if FileOp = FO_MOVE then
Self.Refresh(ParentNode);
Self.Select(ParentNode);
Self.TopItem := Self.Selected;
Self.SetFocus;
Der Code liegt in der überschriebenen DragDrop. Refresh klappt wunderbar..
Nach einem Verschieben von Ordnern sollte der übergeordnete Ordner oder der verschobene Ordner im Zielordner auch Selected angezeigt werden. Nach dem Verschieben ist bei mir garnichts mehr Blau hinterlegt.
Grüße
Sebastian