Delphi 2007을 사용하여 파일의 디렉터리를 표시하도록 TShellListView의 경로를 설정하고 싶습니다. 처음에는 TShellListView.Root를 사용하여 다음과 같은 루트 경로를 설정할 수 있습니다. 이 그리고 내가 원하는 디렉토리를 보여줍니다TShellListView 경로/폴더를 String으로 가져 오거나 설정하십시오 (.Root를 사용하지 않음)
View := TShellListView.Create(Self);
// ...
View.Root := 'C:\Windows';
을하지만 사용자가 백 스페이스를 사용하여 해당 디렉토리에서 멀리 탐색 내가 원래 디렉토리로 .Root을 설정하려고하면, 표시되는 디렉토리가 변경되지 않습니다. .Root는 현재 디렉토리가 아닌 쉘 이름 공간의 루트를 정의하기위한 것입니다.
또한 사용자가 (백 스페이스 등을 사용하여) 탐색하면 .Root 속성이 현재 표시된 경로를 반영하도록 업데이트되지 않습니다. TShellTreeView와 같은 .Path 속성이 없습니다.
내가 원하는 것은 TShellListView를 TShellTreeView에 연결하고 TShellTreeView.Path를 설정하거나 해킹 한 ShellCtrls.pas를 필요로하지 않고 현재 경로를 가져 와서 설정하는 방법입니다. TShellListView의 관련 메서드는 모두 비공개로 보입니다. 나는 경로를 얻거나 설정하는 간단한 방법이 없다는 것을 믿기 어렵다. 그래서 나는 여기서 간단한 것을 놓치고 있다고 가정하지만,이 구성 요소는 전혀 문서화되지 않았다.
슬래시를 추가/제거 할 때 권장되는 해결 방법이 제대로 작동하는 것 같습니다. 기본 경로 대신 TShellListView 자손에 추가 한 새 Path 속성에 비슷한 해결 방법 코드를 추가했습니다. – Anagoge