사용자는 해당 열 머리글을 클릭하여 이름, 날짜 또는 크기별로 표준 Windows 열기 대화 상자 (세부 정보보기 모드)에서 파일을 수동으로 정렬 할 수 있습니다. 선호하는 정렬 방식으로 대화 상자가 열리도록 프로그램에서 프로그래밍 방식으로 열기 대화 상자 (Delphi의 TOpenDialog 클래스)에서 정렬 모드를 설정하는 방법은 무엇입니까?열기 대화 상자에서 정렬 모드를 설정하는 방법
답변
GetOpenFileName() API 및 Vista IFileDialog 인터페이스는이 기능을 지원하지 않습니다. this magazine article과 같이 대화 상자를 해킹 할 수 있습니다. 기사가 꽤 오래된 것을주의하십시오. 그리고 이러한 해킹은 취약하며, 다음 버전의 Windows에서 작업을 중단 할 수도 있습니다.
TFileOpenDialog (D2009)는 Windows에서 IFileDialog 인터페이스를 내부적으로 사용합니다. 이 인터페이스는 파일의 정렬을 설정하는 방법을 제공하지 않습니다. 그러나 그것은 SetClientGuid와 ClearClientData를 가지고 있습니다. 이들은 ClientGUID 속성을 통해 TFileOpenDialog에 의해 사용됩니다. 특정 인스턴스에 대해 ClientGuid를 설정하면 창에 대화 상자의 상태를 유지하도록 지시합니다. 그러면 Windows는 마지막 폴더가 열릴 때, 파일이 나열되는 방식 및 정렬을 기억합니다.
파일을 열 때 대화 상자가 설정된 마지막 방법을 기억하여 사용자를 수용하려는 경우 FileOpenDialog의 ClientGUID를 설정하기 만하면됩니다.
GUID를 얻으려면 코드 편집기에서 Ctrl-Shft-G를 누릅니다. 이것을 ClientGUID 속성에 붙여 넣을 때는 대괄호를 사용하지 않는 것이 좋습니다.
DexExpress 'TcxShellListView와 같은 구성 요소를 사용하여 직접 롤 수 있습니다. 그것은 파일의 정렬을 허용합니다.
주제를 인터넷 검색 후 나는 약간의 "매직 넘버"를 발견하고 다음 솔루션 (TOpenDialog.OnFolderChange 이벤트 핸들러)에 온 : 두 번째 세트 정렬
procedure TDM.OpenDlgFolderChange(Sender: TObject);
const
FCIDM_SHVIEW_LARGEICON = $7029;
FCIDM_SHVIEW_SMALLICON = $702A;
FCIDM_SHVIEW_LIST = $702B;
FCIDM_SHVIEW_REPORT = $702C;
FCIDM_SHVIEW_THUMBNAIL = $702D;
FCIDM_SHVIEW_TILE = $702E;
ByName = $7602;
BySize = $7603;
ByType = $7604;
ByModified = $7605;
ByAttributes = $7608;
var
Handle: THandle;
begin
Handle:= FindWindowEx(GetParent(OpenDlg.Handle), 0, 'SHELLDLL_DefView', nil);
SendMessage(Handle, WM_COMMAND, FCIDM_SHVIEW_REPORT, 0);
SendMessage(Handle, WM_COMMAND, ByAttributes, 0);
SendMessage(Handle, WM_COMMAND, ByName, 0);
end;
첫 번째 메시지가 설정 "세부 사항"보기 모드 "By Attributes"와 세 번째 "By Name"; 두 개의 서로 다른 '정렬'메시지는 최종 정렬이 오름차순이라는 두 가지 보장이 필요합니다.
위의 코드는 Windows XP에서 제대로 작동하지만 정렬 부분은 Windows 2000 SP4에서 작동하지 않습니다. Win 7에서 "정렬 마법 번호"가 이동됩니다 (예 : "ByName = $ 7603"등).
- 1. 대화 상자에서 jQuery UI DatePicker 열기 열기
- 2. 모달 상자에서 해당 대화 열기
- 3. jQuery 대화 상자에서 jQuery WYSIWYG 열기
- 4. 지도 오버레이 대화 상자에서 다른 활동 열기
- 5. FileOpen 대화 상자에서 셸 확장을 사용하지 않도록 설정하는 방법
- 6. 경고 대화 상자에서 문자 메시지의 위치를 설정하는 방법
- 7. 모달 대화 상자에서 응답을받는 방법?
- 8. 대화 상자에서 이미지를 여는 방법
- 9. 대화 상자에서 활동을 호출하는 방법
- 10. 대화 상자에서 UIPickerview를 표시하는 방법
- 11. 대화 상자에서
- 12. 파일 열기 대화 상자 및 프로젝트 열기 대화 상자에서 바로 가기 사용자 정의
- 13. 파일 열기 대화 상자에서 이스케이프 키 누르기 JavaScript 키를 누르면
- 14. 파일 열기 대화 상자에서 마지막으로 열린 파일 가져 오기
- 15. JavaScript UI 대화 상자에서 간단한 ASP.NET MVC CRUD보기 열기/닫기
- 16. pyqt : 파일 열기 대화 상자에서 긴 프로세스가 발생했습니다.
- 17. 열기 대화 상자 PHP로 열기
- 18. SQL Server 2005에서 FULLTEXT 모드를 설정하는 방법
- 19. iOS 4의 소켓에서 VoIP 모드를 설정하는 방법
- 20. 안드로이드 대화 상자에서 사라 자신의
- 21. 파일 열기/저장 대화 상자
- 22. javascript- 대화 상자에서 요소에 액세스하기
- 23. 대화 상자에서 listview를 만드시겠습니까?
- 24. 찾아보기 대화 상자에서 WIX
- 25. Windows의 파일 대화 상자에서 "저장"버튼에 텍스트를 설정하는 방법은 무엇입니까?
- 26. MFC 대화 상자에서 관리자 권한 아이콘을 설정하는 방법은 무엇입니까?
- 27. 내가 만든 Jquery 대화 상자에서 속성을 설정하는 방법은 무엇입니까?
- 28. 진행률 대화 상자에서 취소 버튼을 설정하는 방법은 무엇입니까?
- 29. 안드로이드 사용자 정의 대화 상자에서 listviewadapter를 설정하는 방법은 무엇입니까?
- 30. 파일 선택 대화 상자에서 아이콘을 설정하는 방법은 무엇입니까?